我有一张带有一列的桌子IsActive
现在我想获取具有给定状态的记录列表,但我想处理IsActive
将 null 值视为 false。
在 SQL 中我们使用:
SELECT * FROM dbo.Table c WHERE ISNULL(IsActive, 0) = @act
如何使用 LINQ 做到这一点?
P.S.:我正在使用 LINQ to Entities,因此我无法使用函数来转换值,例如:
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));
但这个解决方案似乎很糟糕,我认为应该有更好的方法。
您可以使用??
运算符而不是ISNULL
:
Table.Where(t=> (t.IsActive ?? false) == act);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)