1

我了解在 Entity Framework 中,您可以指定需要与Include连接的关系:

Product firstProduct = 
       db.Product.Include("OrderDetail").Include("Supplier").First();

但是我们有一个相反的问题,一个简单的 LINQ 语句会在 SQL 服务器上进行太多JOIN 。

那么我们如何做相反的事情,即告诉 Entity在获得所有订单时不要对连接表进行任何深度加载,以便在 SQL Server 上执行:

SELECT * FROM Orders
4

1 回答 1

2

实体框架通常也会继续加载基本的关系信息。

这样做是为了让用户可以轻松地进行更新,而不会违反 EF 独特的关系并发策略。

但是,您可以通过执行无跟踪查询来关闭此功能。

有关更多信息,请参阅提示 11 - 如何避免关系跨度

亚历克斯

于 2009-11-06T04:16:04.397 回答