使用LINQ Lambda表达式可以得到值为NULL的列
本文关键字:NULL 的列 LINQ Lambda 表达式 使用 | 更新日期: 2023-09-27 18:20:07
我想使用LINQ表达式获得列值为NULL的结果
search.AddCriteria(x => x.LogStatus ==
Inventory.AffStatusToChar((EAffidavitLogStatus)byte.Parse(cmbLog.SelectedValue)));
public void AddCriteria (Expression<Func<T, bool>> criteria) {
if (_where == null) { _where = w => true; }
_where = And(criteria);
}
private Expression<Func<T, bool>> And (Expression<Func<T, bool>> expr) {
return Expression.Lambda<Func<T, bool>>(Expression.And(
_where.Body,
Expression.Invoke(expr, _where.Parameters.Cast<Expression>())
), _where.Parameters);
}
//This below part is use to execute the Linq
//IQueryable<T> result = db.GetTable<T>();
//result = result.Where(_where);
结果是零件看起来像WHERE ([t0].[LogStatus]) = @p5)
看我想要IS NULL
我想要像这个这样的查询
SQL query : `select * from xyz where abc is NULL`
但是上面的LINQ表达式正在转换为CCD_ 3给出了不同的结果。
有人经历过这种问题吗?LINQ表达式中的IS NULL
如何实现这一点?
没关系,我自己认为这是我做的解决方案
search.AddCriteria(x => !(x.LogStatus!=null));
这将返回类似的查询
WHERE (NOT (UNICODE([t0].[LogStatus]) IS NULL ))
塔达!!这正是我所期望的。。
嘿,你可以检查这篇文章(Linq和Nullable Values)或(SQL ISNULL with Linq)
你可以试试
var user = from u in Users
join uc in UserClients on u.Id equals uc.UserId
into myuserwithclient
from m in myuserwithclient.DefaultIfEmpty()
select new {
Id=u.Id,
FirstName=u.FirstName,
LastName=u.LastName,
UserId=m.UserId,
MobileNo = m.MobileNo ?? "N/A"
};
var nullvalues = user.where( u=>u.MobileNo== "N/A");