【问题标题】:Entity Framework doesn't work with stored procedures!实体框架不适用于存储过程!
【发布时间】:2010-12-02 21:27:46
【问题描述】:

除非sp返回一个实体,否则你不能用EF调用sp是真的吗?

为了测试,我为 sp 创建了 3 个函数导入,其中 1. 无返回类型 2. 标量返回类型和 3. 实体返回类型

然后当我输入“DataContext”然后输入“。”我只在返回实体的函数上获得智能感知!

我很惊讶这不是当前的功能!

人们使用什么作为解决方法?

【问题讨论】:

  • 可能是以前版本的限制。您是否在 EF 4.0 和 VS 2010 上尝试过相同的操作?

标签: c# asp.net entity-framework .net-3.5


【解决方案1】:

在 EF v1 中,您只能映射返回实体的过程。在 EF v4 中,您可以将过程结果映射到复杂类型,因此大多数过程都可以在不返回实体的情况下使用。

使用 Chrigl 的答案 (+1) 作为 v1 的解决方法。

【讨论】:

    【解决方案2】:

    使用强大的 T4 模板

    Entity Framework V1.0 感觉是一个未完成的产品,太早地向公众发布。这就是为什么可以使用从 EDMX 文件创建不同代码的 T4 模板,它还支持标量类型的存储过程。

    我们使用经过大量修改的自定义模板,因此它们可以创建业务层对象、IoC/TDD 接口以及 DAL 和 DAO。我们从 EDMX 文件中获取所有内容。哎呀,我们甚至创建了枚举,但这些枚举是从数据库中的真实数据而不是 EDMX 文件中创建的。

    您将能够找到许多 T4 模板... 这是scalar stored procedures 的一个。但是你可能想要一个真正做 POCO 的。

    【讨论】:

      【解决方案3】:

      有一个解决方法!

      Julie Lerman 写了一篇关于此的文章。看看她的博客:http://thedatafarm.com/blog/data-access/implement-select-stored-procedures-that-return-miscellaneous-data-in-ctp2-of-ef-designer/

      它对我实现存储过程帮助很大。

      【讨论】:

        【解决方案4】:

        必须返回一个实体,是的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-08
          • 1970-01-01
          相关资源
          最近更新 更多