我有一个产品实体,它有0或1个“BestSeller”实体。出于某种原因,当我说:实体框架4中的左外连接太多?
db.Products.OrderBy(p => p.BestSeller.rating).ToList();
我得到有“额外的”外的SQL连接(如下图)。如果我添加第二个0或1关系船,并通过两者订购,那么我会得到外部连接。似乎每个这样的实体都会生成2个外连接而不是1个连接。 LINQ to SQL的行为与您所期望的完全相同,没有额外的连接。
有没有其他人经历过这个,或知道如何解决它?
SELECT
[Extent1].[id] AS [id],
[Extent1].[ProductName] AS [ProductName]
FROM [dbo].[Products] AS [Extent1]
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent2] ON [Extent1].[id] = [Extent2].[id]
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent3] ON [Extent2].[id] = [Extent3].[id]
ORDER BY [Extent3].[rating] ASC
它好像它只做这一个0..1实体。如果有实体的集合,那么急切地加载集合确实会导致正确的单个外连接。 – 2010-05-27 18:49:39