如何在Entity Framework 6代码优先方法中选择MAP存储过程?

时间:2016-12-24 11:43:48

标签: c# entity-framework stored-procedures ef-code-first entity-framework-6

例如,当我们写

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<tblError>().MapToStoredProcedures();
}

然后它将在数据库中创建3个存储过程,其名称为 tblError_DeletetblError_InserttblError_Update

我的问题是关于tblError_Select:如何映射用于执行选择查询的存储过程?

我希望EF与前面的3个存储过程一起生成tblError_Select

我想使用EF存储过程进行CRUD操作。目前我可以做插入,更新,删除但是选择呢?为什么EF没有为Select操作创建存储过程?

1 个答案:

答案 0 :(得分:2)

由于这个问题带来了一些新的见解,我研究了一点,并且marc_s回答得到了帮助。基本上了解EF代码 - 首先,当你没有任何数据库时,不可能为Select创建一个SP,因为你必须先创建数据库,然后在其中插入数据然后选择那里有什么(这更有意义),你必须在SQL中创建存储过程并使用下面的代码来运行它: 您可以按照以下方式在DbContext类中调用存储过程。

this.Database.SqlQuery<YourEntityType>("storedProcedure‌​Name",params);

归功于@Marc_S和Source