2017-09-01 13 views
0

EntityFrameworkでASP.NET MVCアプリケーションを開発しました。プロジェクトでDbContextのシングルトンパターンを実装するのがベストプラクティスなのですか?ここでDBContextのシングルトンパターンを使用する方が良い

は私のコードです:

private static Lazy<DbContext> _instance = new Lazy<DbContext>(() 
    => new DbContext()); 

public static DbContext Instance 
{ 
    get 
    { 
     if (
      _instance.Value.Database.Connection.State == 
      System.Data.ConnectionState.Closed 
      ) 
      _instance.Value.Database.Connection.Open(); 

     return _instance.Value; 
    } 
} 

ため、データベースに接続し、それぞれの後に閉じて接続状態を、DbContextインスタンスを返す前に、私は「接続状態をチェックし、そのISN場合は、それを開いてきましたtオープン。

実際には、DbContextの実装パターンについてはわかりません.DbContextを使用しているときにシングルトンを実装する方法があるかどうかを知りたいと思いますか?私たちはSingletonをDbContextに使うべきでしょうか?

+0

私は抽象的なファクトリを使用して、必要なときに新しいDbContextインスタンスを作成します – reggaeguitar

+1

これは危険に満ちているアイデアのようです。 – hatchet

+2

このルートに進む前にこれをお読みください:[1つのWebリクエストにつき1つのDbContext ...なぜ?](https://stackoverflow.com/questions/10585478/one-dbcontext-per-web-request-why) – hatchet

答えて

関連する問題