2012-03-31 11 views
0

私は、すべてのコントローラで利用できるのDataContextを持っているしたいと思います:MVCのDataContextのコントローラ

public abstract class ApplicationController : Controller 
    { 
     private ProjectDataContext datacontext = new SchoolDataContext(); 

     protected ProjectDataContext DataContext 
     { 
      get { return datacontext; } 
     } 
    } 

コントローラ:(?より良い方法やパターン)を

OhterControllers : ApplicationController 

が、ApplicationControllerにからinherritすることをお勧めしますリポジトリと作業単位のパターンとを組み合わせる方法がある

答えて

2

私の意見では、データを保持するための新しいタイプのコントローラを作成することは、それが意図されていた。新しい共通コントローラーにはすぐにいくつかの共通のアクションが含まれているはずです。

この場合リポジトリと作業ユニットの組み合わせが適切です。ここではIoCコンテナ実装を考慮に入れることもできます。

一部のCRUD操作でIRepositoryインターフェイスを定義することをお勧めします。このインタフェースをコントローラのコンストラクタに渡します。 IoCリゾルバの中には、このインタフェースの実装を簡潔にするものがあります。現代のIoC実現(例えば、Ninject)のほとんどは、アプリケーション全体に対して単一の具体的な実装を作成するか、要求のみを作成するかのようなオプションを提供することができます。

関連する問題