次のような一般的なリポジトリメソッド呼び出しがあります
var result = Repository<MyDbClass>.Get(x => x.MyProperty1 == "Something"
&& (!x.MyProperty2.HasValue || x.MyProperty2 == "SomethingElse"));
リフレクションを使用してこのメソッドを呼び出したいと考えています。私は主に、リフレクションを使用してラムダ式をパラメーターとして渡す方法を探しています。
編集
実際、リポジトリのタイプは実行時にのみ認識されます。これらすべてのリポジトリの下にあるテーブルは類似しており、いくつかの列が共通しています。これらの列にフィルターが適用されます。そのため、式をそのまま渡すことはできません。
public void SomeMethod<T, TR>(T repository, TR dataObject)
{
var type = repository.GetType();
var dataType = dataObject.GetType();
var getMethod = type.GetMethod("Get");
//How to invoke the method by passing the lambda as parameter(??)
}