EF 4を使用して、「ビジネス」エンティティのいくつかのサブタイプ(顧客、サプライヤー、運送会社など)があります。それらはサブタイプである必要があります。汎用リポジトリにアクセスするサービスを呼び出す一般的なビューモデルを構築しています。
私には4つのサブタイプがあるので、これらすべてに「汎用」ビューモデルを使用するとよいでしょう。もちろん問題は、特定のタイプを汎用リポジトリに呼び出さなければならないことです。たとえば、次のようになります。
BusinessToRetrieve = _repository
.LoadEntity<Customer>(o => o.CustomerID == customerID);
呼び出すことができるとよいでしょう<SomethingElse>
。somethingElseはサブタイプのいずれかです)、そうでない場合は、ほぼ同一のviemodelを4つ作成する必要がありますが、これはもちろん無駄に思えます。サブタイプエンティティ名はビューモデルで使用できますが、上記の呼び出しでこれをタイプに変換する方法を理解できませんでした。私が望むことを達成する上での問題は、おそらく渡されるラムダ式が「ジェネリック」呼び出しで解決できないということです。