小编Vin*_*nde的帖子

为什么Entity Framework 6会为简单查找生成复杂的SQL查询?

我有这个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呢?

c# sql linq entity-framework

7
推荐指数
4
解决办法
4881
查看次数

标签 统计

c# ×1

entity-framework ×1

linq ×1

sql ×1