2017-10-02 9 views
1

Dapper-Extensionsの比較的単純な述語ステートメントをC#で作成したいと考えていますが、その1つのケースでは、フィールドではなく2つのフィールドを比較する必要があります固定オブジェクト値:2つのフィールドを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") 
    } 
}); 

私はvalueパラメータで表現へのアクセス(または方法がわからない)ことができないので、これを行うための他のいくつかの方法がなければなりませんか?

あなたが提供できる洞察力をお寄せいただきありがとうございます。

答えて

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 wikiのドキュメントを更新しました。このタイプの述語は「TODO」とマークされています:https://github.com/tmsmith/Dapper-Extensions/wiki/Predicates – k3davis

関連する問題