首页 > 解决方案 > 无法在谓词构建器中使用 linq 添加扩展方法

问题描述

Expression<Func<PartJoinTable, bool>> predicate = null;

var query2 = query.Join(
   partJoinTableRepository.GetPartJoinQuery(),
  "x.PartID", 
  "PartID", 
  "inner" + row + "", 
   null);

predicate = PredicateBuilder.True(query2);

这是代码PredicateBuilder

public static class PredicateBuilder
{
    public static Expression<Func<T, bool>> MakePredicate<T>(this IEnumerable<T> source)
    {
        return null;
    }
         public static Expression<Func<T, bool>> True<T>() { return f => true; }
    public static Expression<Func<T, bool>> False<T>() { return f => false; }
    public static Expression<Func<T, bool>> True<T>(IQueryable<T> query) { return f => true; }
    public static Expression<Func<T, bool>> False<T>(IQueryable<T> query) { return f => false; }

错误信息:

无法从用法中推断方法“PredicateBuilder.True(IQueryable)”的类型参数。

标签: c#

解决方案


尝试这个

predicate = PredicateBuilder.True<PartJoinTable>(query2);


推荐阅读