猿问

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

 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;


慕妹3242003
浏览 199回答 2
2回答

长风秋雁

回答表达式>谓词=空;在 where 条件(query.Where(谓词))中引发错误是if (predicate != null)&nbsp; &nbsp; query = query.Where(predicate);int lst1 = query.Distinct().Count();where仅当它存在时才添加子句。使用.ToList()之前.Count()你伸出的每一行从数据库到内存中。

繁星淼淼

您可以使用?-编写,它可以节省以下问题:if (predicate != null)这是完整的代码:int&nbsp;lst1&nbsp;=&nbsp;query.Where(predicate)?.Select(x&nbsp;=>&nbsp;x)?.Distinct()?.ToList()?.Count;你只能写:Count- 类中的属性List
随时随地看视频慕课网APP
我要回答