私は PHP 出身で、複数のエンティティからのデータを 1 つのビューに表示しようとするときに、1 つのモデル/1 つのビューのアプローチに本当に苦労しています。
私は約1か月間、EFを使用してasp.net mvc 4を学習してきましたが、この問題を解決するための適切な解決策はまだ見つかりませんでした。
私の現在のアプローチは、すべてのエンティティ(DB内のテーブル)のリポジトリを作成するUnit-Of-Workを介してDBにアクセスすることです
public GenericRepository<Domain> DomainRepository
{
get
{
if (this.domainRepository == null)
{
this.domainRepository = new GenericRepository<Domain>(context);
}
return domainRepository;
}
}
次に、リポジトリは特定のエンティティ (このシナリオでは DB) からのデータを保持します。
public GenericRepository(PanelContext context)
{
this.context = context;
this.dbSet = context.Set<TTypeParam>();
}
メソッドを使用してデータなどをフィルタリングします。
単一のリポジトリを使用して特定のビューを提供することは、1 つのモデル (エンティティ) のみを使用するため、問題ではありません。
exを保持するモデルクラス(Combined)を作成しようとしているとき。2 つのモデル (Domain と Domain2) は、エンティティが存在しないため、特定のコンテキストの一部ではないため、ビューで @model namespace.Models.Combined を使用しても意味がありません。
現在、タプルを使用して複数のリポジトリからデータを取得し、それを使用して厳密に型指定されたビューにデータを入力していますが、もっと良い方法が必要であることはわかっています...
基本的に問題は、(抽象)を作成する方法ですか?モデル クラス (エンティティ)? 複数のリポジトリからのデータを保持し、特定のビューのビューモデルとして機能しますか?
助けてくれてありがとう。