2013-05-14 59 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