为了账号安全,请及时绑定邮箱和手机立即绑定

表达式<Func<PartJoinTable, bool>> predicate=null;

表达式<Func<PartJoinTable, bool>> predicate=null;

C#
慕妹3242003 2021-11-28 19:47:42
 Expression<Func<PartJoinTable, bool>> predicate = null; var query2 = query.Join(partJoinTableRepository.GetPartJoinQuery(),                         "x.PartID", "PartID", "inner" + row + "", null); foreach (var item1 in query) {     list.Add(new PartJoinTable     {          ProductTypeId = item1.x.ProductTypeId,          PartId = item1.x.PartId     });  }  predicate = PredicateBuilder.True(list.AsQueryable());  if (typeid=="3")  {      if (row == 0)      {          predicate1 = predicate1.And(z => cpaclassids.Contains(z.x.ProductTypeId.ToString()));      }      else      {          predicate = predicate.And(x => cpaclassids.Contains(x.ProductTypeId.ToString()));       }    }    row++;}int lst1 = query.Where(predicate).Select(x => x).Distinct().ToList().Count();无法从“System.Linq.Expressions.Expression>”转换为“System.Func<, bool>”我无法检索结果,因为它在我声明变量时显示上述错误 Expression<Func<PartJoinTable, bool>> predicate = null;
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

回答


表达式>谓词=空;在 where 条件(query.Where(谓词))中引发错误



if (predicate != null)

    query = query.Where(predicate);


int lst1 = query.Distinct().Count();

where仅当它存在时才添加子句。使用.ToList()之前.Count()你伸出的每一行从数据库到内存中。


查看完整回答
反对 回复 2021-11-28
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

您可以使用?-编写,它可以节省以下问题:if (predicate != null)

这是完整的代码:

int lst1 = query.Where(predicate)?.Select(x => x)?.Distinct()?.ToList()?.Count;

你只能写:Count- 类中的属性List


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信