Dlaczego Entity Framework 6 generuje złożone zapytania SQL dla prostych wyszukiwań?
Mam to zapytanie LINQ
dbContext.Customers.Where(c => c.AssetTag == assetTag).Count();
lub
(from c in dbContext.Customers
where c.AssetTag == assetTag
select c).Count();
Wygenerowany SQL to
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[Customer] AS [Extent1]
WHERE (([Extent1].[AssetTag] = @p__linq__0) AND ( NOT ([Extent1].[AssetTag] IS NULL OR @p__linq__0 IS NULL))) OR (([Extent1].[AssetTag] IS NULL) AND (@p__linq__0 IS NULL))
) AS [GroupBy1]
Dlaczego więc LINQ generuje tak skomplikowany SQL dla prostej instrukcji gdzie?