谓词比较两个字段与 DapperExtensions

Predicate comparing two fields with DapperExtensions

我正在尝试在 C# 中为 Dapper-Extensions 创建一个看起来相对简单的谓词语句,但在做了大量这些之后,但在一种情况下,我需要比较两个字段而不是一个字段和一个固定对象值:

multiPred.Add<ChargingProfile>(new PredicateGroup
{
    Operator = GroupOperator.And,
    Predicates = new List<IPredicate>
    {
        Predicates.Field<ChargingProfile>(f => f.EndDt, Operator.Eq, null, true),

        // the below statement should check if f.NextChargeDt is greater than f.EndDt
        // (string value is obviously not correct, but to illustrate)
        Predicates.Field<ChargingProfile>(f => f.NextChargeDt, Operator.Gt, "f.EndDt")
    }
});

我不能(或不知道如何)访问值参数中的表达式,所以一定有其他方法可以做到这一点?

感谢您提供的任何见解。

您可以使用 Property 创建谓词:

var predicate = Predicates.Property<TwoFieldsTable, TwoFieldsTable>(f => f.Field1, Operator.Eq, f2 => f2.Field2);
var res = conn.GetList<TwoFieldsTable>(predicate);