У меня есть объект продукта, который имеет 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