#c# #sql-server #asp.net-mvc #dapper
#c# #sql-сервер #asp.net-mvc #dapper
Вопрос:
У меня есть следующий вызов SP
public IEnumerable<classfile> GetData(bool isactive)
{
using (SqlConnection cnn = this.OpenConnection())
{
IList<classfile> SampleList = SqlMapper.Query<classfile>(cnn, "SPName").ToList();
cnn.Close();
return SampleList.ToList();
}
}
Как я могу отправить параметры вместе с вышеупомянутым вызовом dapper SP
Я попробовал следующее
public IEnumerable<classfile> GetData(bool isactive)
{
using (SqlConnection cnn = this.OpenConnection())
{
var parameters = new DynamicParameters();
parameters.Add("@isActive", isactive);
IList<classfile> SampleList = SqlMapper.Query<classfile>(cnn, "SPName", parameters).ToList();
cnn.Close();
return SampleList.ToList();
}
}
но во время выполнения появляется ошибка следующего вида
Процедура или функция ‘SPName’ ожидает параметр ‘@isActive’, который не был указан.
Ответ №1:
Сам нашел ответ
public IEnumerable<classfile> GetData(bool isactive)
{
using (SqlConnection cnn = this.OpenConnection())
{
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@isActive", isactive);
IList<classfile> SampleList = SqlMapper.Query<classfile>(cnn, "SPName", parameters, commandType: CommandType.StoredProcedure).ToList();
cnn.Close();
return SampleList.ToList();
}
}
Ответ №2:
В качестве альтернативы вы можете написать что-то вроде этого
IList<classfile> SampleList = SqlMapper.Query<classfile>(cnn, "SPName", new
{
isActive = isactive
}
, commandType: CommandType.StoredProcedure).ToList();