При преобразовании этого запроса LINQ join «один ко многим» ( Northwind образец базы данных):
from category in Categories
join product in Products
on category.CategoryID equals product.CategoryID
into productGroup
select new {
CategoryName = category.CategoryName,
ProductsList = from product in productGroup
select product.ProductName
};
в SQL, LINQPad / LINQ вводит a SELECT COUNT (*) в объединенной таблице:
SELECT [t0].[CategoryName], [t1].[ProductName], (
SELECT COUNT(*)
FROM [Products] AS [t2]
WHERE ([t0].[CategoryID]) = [t2].[CategoryID]
) AS [value]
FROM [Categories] AS [t0]
LEFT OUTER JOIN [Products] AS [t1] ON ([t0].[CategoryID]) = [t1].[CategoryID]
ORDER BY [t0].[CategoryID], [t1].[ProductID]
Какова причина подсчета объединенных продуктов? Результат вроде не используется.