0
我試圖選擇'Value'列爲空或空白的所有行。它是nvarchar類型,允許爲空值。查詢執行爲1等於1而不是空值檢查
執行時,以下查詢不會生成正確的sql。
current.Where(
a =>
a.Data.All(ad => ad.AccountTag.Id != currentTag.Item1)
|| a.Data.Any(ad => ad.AccountTag.Id == currentTag.Item1 && string.IsNullOrWhiteSpace(currentTag.Item2)))
的string.IsNullOrWhiteSpace功能轉換爲1 /* @p3 */ = 1
我使用上述功能,並且還使用currentTag.Item2 == null || currentTag.Item2.Equals(string.Empty)
都具有相同的結果嘗試。
完整的SQL下面
select data2_.Id from [isnapshot.Client].[dbo].AccountData data2_
where account0_.Id = data2_.ClientAccountId
and data2_.AccountTagId = 1 /* @p2 */
and 1 /* @p3 */ = 1)
只有當別人看你的代碼時,你纔會意識到你是個白癡。 'currentTag.Item2'應該是'ad.Value'如果你沒有指出它,永遠不會注意到。謝謝 – JConstantine
@JLevett:有時候你只是對最明顯的事情失明。偶爾每個人都會遇到這種情況:-) –