Я использую EFCore в своем проекте и пытаюсь выполнить необработанный запрос SQL (потому что я нацеливаюсь на базу данных, которой не владею, и не хочу создавать массивную схему для него), передавая параметр. Вот что я делаю (хотя я изменил запрос для защиты):
var customerId = "testname";
using (var command = _dbContext.Database.GetDbConnection().CreateCommand())
{
command.CommandText = @"select * from customers where customerName = '@customerName'";
var customerIdParam = new SqlParameter("@customerName", customerId);
SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@customerName";
parameter.Value = customerId;
parameter.DbType = System.Data.DbType.String;
parameter.Direction = System.Data.ParameterDirection.Input;
command.Parameters.Add(parameter);
await _dbContext.Database.OpenConnectionAsync();
using (var result = await command.ExecuteReaderAsync())
{
return result;
}
}
Проблема в том, что, похоже, параметр не передается. Если я жестко задал значение для customerName который я отправляю, он отлично работает и возвращает строки, но если я передаю его как параметр, result
не возвращает никаких строк