2017-10-02 6 views
1

Dapper-Extension의 비교적 간단한 술어 문을 C#에서 만들려고하는데, 그 중 좋은 수를 수행 한 후에 한 필드의 필드가 아닌 두 필드를 비교해야합니다. 및 고정 된 개체 값 :두 필드를 DapperExtensions로 비교하는 술어

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") 
    } 
}); 

나는 값 매개 변수에 식을 액세스 (또는 방법을 모르는) 할 수 없기 때문에이 일을 다른 방법이 있어야한다?

당신이 제공 할 수있는 통찰력에 감사드립니다.

답변

2

당신은 술어를 만들기위한 Property를 사용할 수 있습니다

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

감사합니다 마이클. 이 정보를 사용하여 Dapper-Extensions 위키에서 문서를 업데이트했습니다.이 유형의 술어는 "TODO"로 표시되었습니다. https://github.com/tmsmith/Dapper-Extensions/wiki/Predicates – k3davis