3

我们目前有一个具有相当大数据库的系统,并且存储过程用于 CUD 和查询。数据集用于从 SP 查询中检索结果。

现在我们正在研究使用实体框架针对同一数据库开发另一个项目。在查询数据库时,存储过程通常会执行大量的连接,以收集一些不在目标表中的字段,而是来自连接表中的数据,这些数据是客户端以某种方式需要的。使用 DataSet 时,SP 返回的所有字段都包含在 DataTable 中。所以 DataTable 实际上并不匹配目标数据库表。

在 EF 中处理这种情况的正确方法是什么?创建我的模型时,实体被映射到每个表,如上所述,这些表有时仅与 SP 的结果匹配。我可以将 SP 查询结果的“附加”字段作为属性添加到实体类中,并让它们由查询填充,但在涉及特定实体类型的 CUD 时排除这些属性?似乎 EF 方式,如果通过 LINQ to Entities 而不是 SP 进行查询,将拥有与连接实体具有关系属性的实体实例,以便通过导航关系属性来使用这些“附加”属性?

4

1 回答 1

0

您可以定义任意复杂类型(只是为您生成的一个类,以匹配存储过程返回的列和数据类型)作为实体框架中存储过程的返回类型(从版本 4 和更新版本开始) - 没问题这里。

有关在 Entity Framework中使用存储过程的所有内容的详细说明,请参阅实体框架中的存储过程。

于 2012-09-23T14:58:37.127 回答