我有這樣的LINQ查詢爲什麼實體框架6爲簡單的查找生成複雜的SQL查詢?
dbContext.Customers.Where(c => c.AssetTag == assetTag).Count();
或
(from c in dbContext.Customers
where c.AssetTag == assetTag
select c).Count();
生成的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]
那麼,爲什麼LINQ產生如此複雜的SQL一個簡單的WHERE語句?
您的'[AssetTag]'列允許爲'null'嗎? –
似乎並不複雜,它只是創建一個聲明,以保護您的呼叫從零範圍 – Claies
你能告訴我你如何可以從Linq或Lamda得到這個SQL查詢..這是與你的問題完全無關,我遇到問題。 –