实体框架4中有太多左外连接?

Ada*_*kis 15 c# optimization entity-framework entity-framework-4

我有一个产品实体,它有0或1个"BestSeller"实体.出于某种原因我说:

db.Products.OrderBy(p => p.BestSeller.rating).ToList();
Run Code Online (Sandbox Code Playgroud)

我得到的SQL有一个"额外的"外连接(下面).如果我添加第二个0或1关系,并按两者排序,那么我得到4个外连接.似乎每个这样的实体产生2个外连接而不是一个.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
Run Code Online (Sandbox Code Playgroud)

Ren*_*ink 2

那个额外的外部连接看起来确实是多余的。我认为最好联系实体框架设计团队。他们可能知道这是否是一个错误,并查看是否需要在下一个版本中解决。您可以通过链接联系他们