考慮すべきアーキテクチャ設計は次のとおりです。
- ビューとコントローラーは、MVC Web サイトにあります。
- モデルは別のプロジェクトにあります。
- データ アクセスコードは、DataAccess または Repository と呼ばれる 3 番目のプロジェクトにあります。
Web サイトには、Models および DataAccess プロジェクトへの参照があります。DataAccess プロジェクトには、Models プロジェクトへの参照もあります。
このように、データ アクセス コードは分離されています。検索と保守が容易になります。別のソリューションで使用できます。まったく別のデータ アクセス レイヤーに置き換えることもできます。たとえば、Linq から SQL、Entity Framework、または従来の ADO.Net に切り替えることができます。
モデルを別のプロジェクトに保持することで、Web サイトとデータ アクセス レイヤーの両方からモデルを参照できます。さらに、Models プロジェクトは、疎結合のデータ アクセス レイヤーと同様に、他のソリューションでも使用できます。
このようにレイヤーを分離すると、テストも簡単に追加できます。データアクセスレイヤー/リポジトリがインターフェースと依存性注入を利用する場合、これはより簡単になります。