使用 NET Core 和 EF Core 构建谓词

Orc*_*usZ 6 entity-framework-core asp.net-core

非常快的问题:

我正在尝试创建一个这样的谓词构建器:

    var predicate = PredicateBuilder.False<MyObject>();
Run Code Online (Sandbox Code Playgroud)

但似乎在Net CoreEF Core 中不可用。

我是否缺少包裹或其他东西?

Cal*_*alC 9

您确定PredicateBuilder您使用的不是自定义类吗?APredicateBuilder作为LINQKit 的一部分提供,但源代码也可在此处获得,如下所示:

public static class PredicateBuilder
{
    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>> Or<T> (this Expression<Func<T, bool>> expr1,
                                                      Expression<Func<T, bool>> expr2)
    {
        var invokedExpr = Expression.Invoke (expr2, expr1.Parameters.Cast<Expression> ());
        return Expression.Lambda<Func<T, bool>>
          (Expression.OrElse (expr1.Body, invokedExpr), expr1.Parameters);
    }

    public static Expression<Func<T, bool>> And<T> (this Expression<Func<T, bool>> expr1,
                                                       Expression<Func<T, bool>> expr2)
    {
        var invokedExpr = Expression.Invoke (expr2, expr1.Parameters.Cast<Expression> ());
        return Expression.Lambda<Func<T, bool>>
          (Expression.AndAlso (expr1.Body, invokedExpr), expr1.Parameters);
    }
}
Run Code Online (Sandbox Code Playgroud)