MVC 3 と Entity Framework 4.1 でサイトを開発しています。私はEntity Frameworkを使用したMVC 3開発に慣れていないので、設計上の決定に役立つことを望んでいました。私のサイトには、ユーザーがアクセスできるページが約 15 ページしかありません。ページごとにコントローラーを用意するのではなく、コントローラー クラスを 1 つだけ用意することにしました (ただし、ページごとにモデルを用意します)。また、コントローラー クラスでは、各ページのメソッドをリージョンに保持して、簡単に拡張できるようにします。たとえば、RedirectToAction ホームページを持つ SiteController に LogOn メソッドを配置する予定でした。Hompage() メソッドは、HomePage 領域の SiteController に存在します。
私はすでに同僚から設計されたデータベースを持っています (DB には約 12 ほどのテーブルがあります) - Entity Framework がそこからコードを作成する方法を見てきました - ただし、このコードを DAL フォルダーに保持することをお勧めします。各ページに独自のモデルがまだありますか? たとえば、データベースに保存される FileName があります。ホームページでその FileName を表示したいので、ホームページ モデルに文字列 FileName を設定し、次に HomePage() ビュー メソッドで model.FileName を db.context(db からファイル名を取得) から設定することをお勧めします。
私のSiteControllerのインスタンス化ポイントですべてのdbコンテキストをインスタンス化するか、それらを必要とするメソッドでそれらをインスタンス化するのが最善でしょうか? つまり、ホームページ ビューでテーブル 1 とテーブル 2 が必要な場合は Hompage() メソッドでそれらを新しくし、別のビュー メソッドでテーブル 3/4 からのデータが必要な場合、またはテーブル 3/4 にデータを保存する必要がある場合は、そのメソッドの開始時にそれらを新しくしますか?