2010-12-09 56 views
0

我想SQL的下面一行轉換爲LINQ代碼:ISNULL和可空類型的LINQ

&& Deleted != null ? Deleted : false 

這:

AND IsNull(Deleted,0) = 0 

我已經做這個嘗試

&& (bool)Deleted != null ? (bool)Deleted : false 

第一次嘗試給了我一個錯誤,因爲Deleted是可以爲空的類型,並且第二次嘗試不會返回與t相同的數據集他原來的SQL。有人可以告訴我我做錯了什麼嗎?

回答

1

您可以使用

& & Deleted.GetValueOrDefault(假)==假

+1

如果默認值是布爾類型的?,那麼它應該是 `&& Deleted.GetValueOrDefault(假)== FALSE`或只需'&&!Deleted.GetValueOrDefault(false)`。 – CGK 2010-12-09 12:21:55

1

LINQ;

where !(u.Deleted ?? false)

SQL輸出:

WHERE(CASE WHEN([Extent1] [刪除] IS NULL)然後澆鑄(0作爲位)ELSE [Extent1] [。刪除] END)<>鑄造(1作爲位)