我有这个LINQ查询
dbContext.Customers.Where(c => c.AssetTag == assetTag).Count();
Run Code Online (Sandbox Code Playgroud)
要么
(from c in dbContext.Customers
where c.AssetTag == assetTag
select c).Count();
Run Code Online (Sandbox Code Playgroud)
生成的SQL是
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]
Run Code Online (Sandbox Code Playgroud)
那么为什么LINQ会为一个简单的where语句生成如此复杂的SQL呢?