最近使用LINQ to SQL,在写查询语句时,发现,如果在查询语句中嵌入三目运算符时,写法不一样竟然得到的结果也是不一样的,下面举个例子说明:
int vvar = 3; //写法1 var org = from o in db.org where o.level == 3 && vvar >=3 ? o.status == 3 : o.status == 1 //写法2
var org = from o in db.org where o.level == 3 && o.status == (vvar >=3 ? 3 : 1)
以上两句如果你用SQL跟踪看一下,得到的结果可是不一样的,当然查询结果也会是不一样的