2013-05-14 58 views
0

如何在LINQ to Sql中表達「IS NULL」sql語法?如何在LINQ to sql中表示「is null」sql語法

Where(r => (r.Level1.Equals(l[1] == "" ? null : l[1])) 

在上面的代碼中的LINQ to SQL轉換LINQ表達式到下面的SQL這不是我想要的。

@p1=NULL 

我想我的LINQ轉換成以下SQL

@p1 is null 

我怎樣才能做到這一點?

+0

可以顯示所有生成的sql嗎?你真的有'WHERE @ p1 = null'嗎? – 2013-05-15 10:47:30

回答

2

如果您使用三元運算表達式計算器會發現,它的返回一個字符串表達式試試這個

if (l[1] == "") 
    Where(r => (r.Level1 == null)); 
else 
    Where(r => (r.Level1 == l[1])); 

,這導致它會使用=運算符。

+1

如果我做了以下事情,它是一樣的。在哪裏(r =>(r.Level1 ==(l [1] ==「」?null:l [1]))仍然沒有生成所需的sql – neo 2013-05-14 17:12:48

+0

Level1屬性是如何聲明的?它是「int」還是「int – fhelwanger 2013-05-14 17:16:22

+0

這只是一個字符串 – neo 2013-05-14 17:20:43