一尘不染

Entity Framework Code First是否支持存储过程?

c#

我看了EF Code First的几个演示,还没有看到EFCF如何与存储过程一起工作。

如何声明将使用sp的方法?是否可以将实体传递给调用sp的方法,而无需手动将实体属性映射到sp参数?

另外,如果我更改模型会怎样?从模型重新创建表格时,它会掉落我的sp吗?那触发器呢?

如果不支持这些功能,将来是否有计划支持它们?


阅读 216

收藏
2020-05-19

共1个答案

一尘不染

编辑:
我对EF4.1(以下)的原始答案现在已过时。请查看下面来自迭戈·维加(Microsoft
EF团队的工作人员)的答案


@gsharp和Shawn Mclean:您从哪里获得此信息?您仍然没有访问底层ObjectContext的权限吗?

IEnumerable<Customer> customers = 
    ((IObjectContextAdapter)this)
    .ObjectContext.ExecuteStoreQuery<Customer>("select * from customers");

用存储的proc替换“ select”语句,然后就可以了。

至于您的其他问题:是的,很不幸,您的sp会崩溃。您可能需要在代码中添加“ CREATE PROCEDURE”语句。

对于EF 4.2:

var customers = context.Database.SqlQuery<Customer>("select * from customers")
2020-05-19