例如,当我们写
时protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<tblError>().MapToStoredProcedures();
}
然后它将在数据库中创建3个存储过程,其名称为
tblError_Delete
,tblError_Insert
,tblError_Update
我的问题是关于tblError_Select
:如何映射用于执行选择查询的存储过程?
我希望EF与前面的3个存储过程一起生成tblError_Select
。
我想使用EF存储过程进行CRUD操作。目前我可以做插入,更新,删除但是选择呢?为什么EF没有为Select
操作创建存储过程?
答案 0 :(得分:2)
由于这个问题带来了一些新的见解,我研究了一点,并且marc_s回答得到了帮助。基本上了解EF代码 - 首先,当你没有任何数据库时,不可能为Select创建一个SP,因为你必须先创建数据库,然后在其中插入数据然后选择那里有什么(这更有意义),你必须在SQL中创建存储过程并使用下面的代码来运行它:
您可以按照以下方式在DbContext
类中调用存储过程。
this.Database.SqlQuery<YourEntityType>("storedProcedureName",params);
归功于@Marc_S和Source