主に Josh Smith のmsdn articleに基づいたマスター/詳細クラスがいくつかあります。特に例としては素晴らしいコードですが、リポジトリのサブセットが必要な状況をどのように処理するのが最善か疑問に思っています。
Josh には AllCustomersViewModel というクラスがあり、次のようなコードを作成しています。
public AllCustomersViewModel(CustomerRepository customerRepository)
{
if (customerRepository == null) throw new ArgumentNullException("customerRepository");
// Populate the AllCustomers collection with CustomerViewModels.
_allCustomers = _customerRepository
.GetCustomers()
.Select(cust => new CustomerViewModel(cust, _customerRepository))
.ToList();
}
PreferredCustomers、ExCustomers、LocalCustomers などが必要な状況をどのように解決しますか??
彼のコードは、それぞれに ViewModel クラスを提案し、そのクラスにリポジトリのフィルタリングがハードコードされています。
または、オプションのフィルターをリポジトリと共に ViewModel に渡す方法はありますか?
あなたのコードはこの特定の問題をどのように解決しますか?
余談ですが、このような問題を解決するために SpeciaficationPattern または IQueryable を使用する方法を示すリンクや良い例はありますか?
乾杯、
ベリル