ISNULL等同于Linq [英] ISNULL equivalent in Linq

查看:125
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆