私はこれで完全に迷っています。次のように実装したときに必要なことを行うコードがあります。
return filters.Add(m => m.Metadata.RecordId).IsEqualTo(1);
ここで、m はTestObj
クラス オブジェクトで、Add
メソッドの引数はExpression<Func<TestObj,bool?>>
です。
問題は、Add 内に m.Metadata.RecordId をハードコーディングできないことです。ここで取得するのは、使用する必要があるプロパティ (この場合は "Metadata.RecordId") について通知する文字列であるためです。私がする必要があるのは、m => m.Metadata.RecordId と同じことを行うこの文字列を使用して式を作成することです。私はこのようなものが必要です:
string propertyName = "Metadata.RecordId";
Expression expr = null;//create expression here somehow that will do the same as m => m.Metadata.RecordId
return filters.Add(expr).IsEqualTo(1);
それ、どうやったら出来るの?