ISNULL等同于Linq [英] ISNULL equivalent in Linq
本文介绍了ISNULL等同于Linq的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个列有 IsActive
的表,现在我想获得具有给定状态的记录列表,但是我想处理 IsActive
,空值为false。
在SQL中,我们使用:
I have a table with a column IsActive
now I want to get a list of records with given status but I want to deal with IsActive
with null values as false.
In SQL we used:
SELECT * FROM dbo.Table c WHERE ISNULL(IsActive, 0) = @act
如何使用LINQ?
PS:我正在使用LINQ to Entities,所以我不能使用一个函数来转换值:
P.S.: I'm using LINQ to Entities so I can't use a function to cast the value like:
Table.Where(t=> Parse(t.IsActive) == act)
bool Parse(bool? val){
return val == true? true : false;
}
我想到的方式是:
Table.Where(t=> (t.IsActive==null || t.IsActive == false) && act == false)
|| (t.IsActive==true && act == true));
但是这个解决方案似乎很差,我认为应该有一个更好的方法。 >
But this solution seems to be very poor and I think there should be a better way.
推荐答案
您可以使用 ??
运算符而不是 ISNULL
:
You can use ??
operator instead of ISNULL
:
Table.Where(t=> (t.IsActive ?? false) == act);
这篇关于ISNULL等同于Linq的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文