Я использую Entity Framework Core, и когда я запускаю следующий запрос, все работает так, как ожидалось, и выбирает все сущности из таблицы flasher_equipment
.
public async Task<IEnumerable<BaseEquipmentType>> GetNewAvailableEquipment(string tableName)
{
DbSet<BaseEquipmentType> dbSet = _context.Set<BaseEquipmentType>();
IQueryable<BaseEquipmentType> types = dbSet.FromSql($"select * from flasher_equipment");
return await types.ToArrayAsync();
}
но теперь, вместо жесткого кодирования таблицы name (flasher_equipment
) Я хочу передать его как параметр.
Я пробовал изменить код следующим образом:
public async Task<IEnumerable<BaseEquipmentType>> GetNewAvailableEquipment(string tableName)
{
DbSet<BaseEquipmentType> dbSet = _context.Set<BaseEquipmentType>();
IQueryable<BaseEquipmentType> types = dbSet.FromSql($"select * from {tableName}");
return await types.ToArrayAsync();
}
, а также
public async Task<IEnumerable<BaseEquipmentType>> GetNewAvailableEquipment(string tableName)
{
DbSet<BaseEquipmentType> dbSet = _context.Set<BaseEquipmentType>();
IQueryable<BaseEquipmentType> types = dbSet.FromSql("select * from {0}", tableName);
return await types.ToArrayAsync();
}
Каждый раз, когда я получаю сообщение об ошибке:
Grp c .AspNetCore.Server.ServerCallHandler [6] Ошибка при выполнении служебного метода GetByPlanIdAnImplementation. Oracle .ManagedDataAccess.Client.OracleException (0x80004005): ORA-00903: недопустимое имя таблицы
Почему параметризация имени таблицы в качестве параметра вызывает ошибку sh?