Я использую Dapper (спасибо Sam, отличный проект.) Микро ORM с DAL и по какой-то причине я не могу выполнять хранимые процедуры с входными параметрами.Выполнение хранимой процедуры с параметрами в Dapper
В определенной службе у меня есть что-то вроде этого:
public void GetSomething(int somethingId)
{
IRepository<Something, SomethingEnum> repository = UnitOfWork.GetRepository<Something, SomethingEnum>();
var param = new DynamicParameters();
param.Add("@somethingId", dbType: DbType.Int32, value:somethingId, direction: ParameterDirection.Input);
var result = repository.Exec<Something>(SomethingEnum.spMyStoredProcedure, param);
...
}
Когда выполнение хранимой процедуры бывает SqlException брошено о том, что мне нужно, чтобы обеспечить «» somethingId
Процедура или функция 'spMyStoredProcedure' ожидает параметра '@somethingId', который не был предоставлен.
Мой DAL похож на этот проект github Pencroff.
Я что-то упустил?
Update: Я на самом деле прохождения CommandType через SomethingEnum:
public class SomethingEnum : EnumBase<SomethingEnum, string>
{
public static readonly SomethingEnum spMyStoredProcedure = new SomethingEnum("spMyStoredProcedure", "[dbo].[spMyStoredProcedure]", CommandType.StoredProcedure);
public SomethingEnum(string Name, string EnumValue, CommandType? cmdType): base(Name, EnumValue, cmdType)
{
}
}
Привет, Марк, спасибо за ответ. Я фактически передаю commandType на SomethingEnum. Эта проблема как-то связана с моим DAL на DynamicParameters. Если я выполнил его inline, он работает. – antao
@antao well, 'Exec' не похоже на метод dapper. Можете ли вы показать, где это фактически становится звоном? –
Я действительно использовал эту реализацию для него: https://github.com/Pencroff/Dapper-DAL/blob/master/Dapper-DAL/Infrastructure/Repository.cs – antao