实体框架5中的Code First Join选项

时间:2013-07-31 09:51:24

标签: entity-framework

我正在基于旧版SQL Server的系统上创建一个Web服务层。它是一个非常庞大和复杂的业务应用程序,它有大量执行SELECT语句的存储过程。大多数这些存储过程都会连接多个表并生成一个结果集,以便客户轻松使用。

在构建我的web服务时,我想利用EF,并使用Code First方法,通过将direclty映射到表,可以实现80%的用例。但是,我有许多用例,我需要存储过程提供的数据交叉视图。在我看来,我有3个选择:

  1. 创建表示存储过程的新POCO返回并将这些POCO链接到现有存储过程(让SQL执行连接并重新使用现有代码)
  2. 创建看起来像存储过程返回的新POCO,但通过与其他EF实体关联来填充自己(让EF做jons)
  3. 以某种方式在LINQ中加入
  4. 在这种情况下,人们认为最佳做法是什么,我想我们大多数人每天都会遇到这种情况?

    谢谢, 安迪

1 个答案:

答案 0 :(得分:0)

那里有很多好书。 Julie Lerman的任何内容......这是最近的http://www.apress.com/9781430257882

使用导航属性,您可以在没有旧式连接的情况下执行大多数操作。

所以4)在Linq中做,让EF做联接。   使用导航属性。你可以做很多逻辑连接,甚至避免使用join关键字。

此博客显示了没有连接语法的LINQ在数据库级别的连接有多简单和原因。 http://blog.staticvoid.co.nz/2012/7/17/entity_framework-navigation_property_basics_with_code_first