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()你伸出的每一行从数据库到内存中。
繁星淼淼
TA贡献1775条经验 获得超11个赞
您可以使用?
-编写,它可以节省以下问题:if (predicate != null)
这是完整的代码:
int lst1 = query.Where(predicate)?.Select(x => x)?.Distinct()?.ToList()?.Count;
你只能写:Count
- 类中的属性List
- 2 回答
- 0 关注
- 198 浏览
添加回答
举报
0/150
提交
取消