gpt4 book ai didi

c# - 使用 LINQ Lambda 表达式获取值为 NULL 的列

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:13 40 4
gpt4 key购买 nike

我想使用 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 表达式正在转换为 select * from xyz where abc=NULL 这给出了不同的结果。

有人遇到过这种问题吗? LINQ 表达式中的 IS NULL 如何实现这一点?

最佳答案

没关系,我自己想出来的,这就是我所做的解决方案

search.AddCriteria(x => !(x.LogStatus!=null));

这会返回类似的查询

WHERE (NOT (UNICODE([t0].[LogStatus]) IS NULL ))

多田!!这是我所期望的..

关于c# - 使用 LINQ Lambda 表达式获取值为 NULL 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8848846/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com