0

データベースアクセスモデルがasp.net mvcでどのように機能するかを理解しようとしています。一部の例はコントローラーで機能しますが、他の例はモデルで機能します。

ado.net を使用してそれを行う方法を知りたいのですが、ベスト プラクティスは、モデル レイヤーでクラスを使用し、そこでデータベース アクセスを試すことです。

すべての例は EF と LINQ を使用しています。ado.net を使用して行う最善の方法を知りたいです。

データベースアクセスはモデルまたはコントローラーにありますか?

4

2 に答える 2

3

考慮すべきアーキテクチャ設計は次のとおりです。

  1. ビューとコントローラーは、MVC Web サイトにあります。
  2. モデルは別のプロジェクトにあります。
  3. データ アクセスコードは、DataAccess または Repository と呼ばれる 3 番目のプロジェクトにあります。

Web サイトには、Models および DataAccess プロジェクトへの参照があります。DataAccess プロジェクトには、Models プロジェクトへの参照もあります。

このように、データ アクセス コードは分離されています。検索と保守が容易になります。別のソリューションで使用できます。まったく別のデータ アクセス レイヤーに置き換えることもできます。たとえば、Linq から SQL、Entity Framework、または従来の ADO.Net に切り替えることができます。

モデルを別のプロジェクトに保持することで、Web サイトとデータ アクセス レイヤーの両方からモデルを参照できます。さらに、Models プロジェクトは、疎結合のデータ アクセス レイヤーと同様に、他のソリューションでも使用できます。

このようにレイヤーを分離すると、テストも簡単に追加できます。データアクセスレイヤー/リポジトリがインターフェースと依存性注入を利用する場合、これはより簡単になります。

于 2012-05-26T16:22:59.810 に答える
1

データベースへのアクセスはコントローラーで行う必要があります。あなたが見た EF の具体的な例はわかりませんが、多くの場合、EF エンティティ自体がモデルです (これは通常、Web サイトを開始するための迅速かつ簡単な方法ですが、大規模な Web サイトには適していません)。基本的に、コントローラーはモデルのフェッチ/生成を担当し、モデルをビューに渡します。

于 2012-05-26T16:23:46.057 に答える