Ash*_*ani 4 c# linq entity-framework
我有一个列有一列的表现在IsActive我想得到一个具有给定状态的记录列表但我想处理IsActivenull值为false.在SQL中我们使用:
SELECT * FROM dbo.Table c WHERE ISNULL(IsActive, 0) = @act
Run Code Online (Sandbox Code Playgroud)
如何使用LINQ做到这一点?
PS:我正在使用LINQ to Entities,因此我不能使用函数来转换值,如:
Table.Where(t=> Parse(t.IsActive) == act)
bool Parse(bool? val){
return val == true? true : false;
}
Run Code Online (Sandbox Code Playgroud)
我能想到的方式是:
Table.Where(t=> (t.IsActive==null || t.IsActive == false) && act == false)
|| (t.IsActive==true && act == true));
Run Code Online (Sandbox Code Playgroud)
但这个解决方案似乎很差,我认为应该有更好的方法.
您可以使用??运算符代替ISNULL:
Table.Where(t=> (t.IsActive ?? false) == act);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |