I'm using Dapper (thanks Sam, great project.) a micro ORM with a DAL and by some reason I'm not able to execute stored procedures with input parameters.
In a example service I've the following code:
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);
...
}
When the execution of the stored procedure is triggered a SqlException is thrown stating that I need to provide the 'somethingId'
Procedure or function 'spMyStoredProcedure' expects parameter '@somethingId', which was not supplied.
My DAL is similar based on this github project of Pencroff.
Am I missing something here?
Update: I am actually passing the commandType via the 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)
{
}
}