Sql 实体:当DBContext来自DI时调用存储过程
我将存储过程从DB导入实体模型,您能告诉我如何使用它并传递参数吗 我在NinjecetWebCommon中注册了我的DBContext:Sql 实体:当DBContext来自DI时调用存储过程,sql,asp.net-mvc,entity-framework,stored-procedures,ninject,Sql,Asp.net Mvc,Entity Framework,Stored Procedures,Ninject,我将存储过程从DB导入实体模型,您能告诉我如何使用它并传递参数吗 我在NinjecetWebCommon中注册了我的DBContext: kernel.Bind<DbContext>().To<MyDbContext>().InRequestScope(); kernel.Bind().To().InRequestScope(); 现在我想从MyProcedure中获取数据,但我得到一个错误: 类型“CMS\u MyProcedure\u Result”映射为复杂类型
kernel.Bind<DbContext>().To<MyDbContext>().InRequestScope();
kernel.Bind().To().InRequestScope();
现在我想从MyProcedure中获取数据,但我得到一个错误:
类型“CMS\u MyProcedure\u Result”映射为复杂类型。
Set方法、DbSet对象和DbEntityEntry对象只能是
用于实体类型,而不是复杂类型
我想这样做:
public class MyRepository : BaseRepository<Product>, IMyRepository
{
public MyRepository(DbContext _dbContext)
: base(_dbContext)
{
}
public IQueryable<ProductDisplayDTO> GetProducts(int catId, int languageId)
{
return = _dbContext.Set<CMS_MyProcedure_Result>();
}
}
公共类MyRepository:BaseRepository,IMyRepository
{
公共MyRepository(DbContext\u DbContext)
:base(_dbContext)
{
}
公共IQueryable GetProducts(int-catId、int-languageId)
{
return=_dbContext.Set();
}
}
当Ninject(依赖项注入)正在使用时,是否有可能使用参数调用存储过程
谢谢 一种可能的方法是:-
public class StoredProcedure
{
public List<CMS_MyProcedure_Result> GetCMSResult({StoredProcedureParameters})
{
return _dbContext.CMS_MyProcedure({StoredProcedureParameters}).ToList();
}
}
公共类存储过程
{
公共列表GetCMSResult({StoredProcedureParameters})
{
返回_dbContext.CMS_MyProcedure({StoredProcedureParameters}).ToList();
}
}
你可以这样称呼它
StoredProcedure storedProcedure = new StoredProcedure();
List<CMS_MyProcedure_Result> cmsResult = storedProcedure.GetCMSResult({StoredProcedureParameters});
StoredProcedure StoredProcedure=newstoredprocedure();
List cmsResult=storedProcedure.GetCMSResult({StoredProcedureParameters});
但是我在\u dbContext
中看不到CMS\u MyProcedure
(因为Ninject依赖项注入)。我必须使用\u dbContext.Set()
,但我不知道在哪里可以传递参数。