<分区>
我有一个产品实体,其中包含 0 或 1 个“BestSeller”实体。出于某种原因,当我说:
db.Products.OrderBy(p => p.BestSeller.rating).ToList();
我得到的 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