複数のストアド プロシージャ (プロシージャからの複数の結果セットではなく) を呼び出して、ASP.NET MVC 3 アプリケーションの 1 つのページに結果を表示することは可能ですか?
私が理解していることから、単一のページで作成できるモデルは1つだけであり、ストアドプロシージャはすでにそのモデルに関連付けられています。別のプロシージャを呼び出して、その結果も自分のページに表示したい
複数のストアド プロシージャ (プロシージャからの複数の結果セットではなく) を呼び出して、ASP.NET MVC 3 アプリケーションの 1 つのページに結果を表示することは可能ですか?
私が理解していることから、単一のページで作成できるモデルは1つだけであり、ストアドプロシージャはすでにそのモデルに関連付けられています。別のプロシージャを呼び出して、その結果も自分のページに表示したい
根本的な問題は、MVC パターンのモデルの意味を理解することだと思います。
初めに、
モデルはアプリケーション データとビジネス ルールで構成され、コントローラーは入力を仲介し、モデルまたはビューのコマンドに変換します。[3] ビューは、チャートやダイアグラムなど、データの任意の出力表現にすることができます
ASP.Net MVC では、モデルをビューにリンクします。このモデルは、ドメイン ロジックまたはドメイン オブジェクトの一部であってはなりません。
実際のモデル (MVC パターンの意味を使用) は、ドメイン オブジェクトによって表されます。
では、ビューにリンクするオブジェクトの中に何を入れる必要がありますか??
これらのオブジェクトには、ビューの表現、つまり、ビューで使用されるデータのみを含む単純な DTO が含まれている必要があります。これらのモデルは、ビューで使用されているデータを表す必要があります。このアプローチに従い、ページにさらに多くのデータを表示する必要がある場合は、このモデルに別のプロパティを追加するだけで、ビューから使用できます。
CQRS アーキテクチャでは、これらの DTO はクエリ リポジトリによって設定される必要があります。
CQRS アーキテクチャがない場合は、これらのオブジェクトをドメイン、リポジトリなどに入力するだけです。コントローラー内では行わないでください。サービスまたはリポジトリを使用して実際のドメインを呼び出すことにより、コントローラーをクリーンでシンプルに保ちます。
これらの DTO の再利用を避けるようにしてください。それらは 1 つのビューのみに属する必要があります。また、モデルとして使用するためだけに DTO の代わりにドメイン オブジェクトを再利用しようとしないでください。
このアプローチに従うと、ビューモデルは DTO のみになり、ビューに必要なデータのみが含まれるため、クリーンになります。また、これらの DTO は、必要に応じて異なるデータベースからでも、さまざまなソースから入力できます。
アクションを実行する場合、ユーザーが提供したデータをモデルから読み取り、このデータを使用して、リポジトリ、サービス、または CQRS アークでドメインを呼び出します。コマンドの使用
あなたの質問に対する簡単な答えは「はい」です。
MVC についてさらに調査 (つまり、記事を読んだり、サンプル アプリを調べたり) を行い、次の点を理解することに専念することをお勧めします。
幸運を!