Entity Framework Contexte Singleton

Je suis en train de construire une Application qui utilisent Contexte de l'EF dans le Pattern Singleton comme NHibernate de travail de la Session:

public class DbContextFactory
{
    private static volatile DbContextFactory _dbContextFactory;
    private static readonly object SyncRoot = new Object();
    public DbContext Context;

    public static DbContextFactory Instance
    {
        get
        {
            if (_dbContextFactory == null)
            {
                lock (SyncRoot)
                {
                    if (_dbContextFactory == null)
                        _dbContextFactory = new DbContextFactory();
                }
            }
            return _dbContextFactory;
        }
    }

    public DbContext GetOrCreateContext()
    {
        if (this.Context == null)
            this.Context = new DbContext(ConfigurationManager.AppSettings["DefaultConnectionString"]);

        return Context;
    }
}

Je suis en utilisant Ninject pour Injecter le Contexte:

public class DbContextModule : NinjectModule
{
    public override void Load()
    {
        Bind<IDbContext>().ToConstant(DbContextFactory.Instance.GetOrCreateContext());
    }
}

Je suis en train de lire à propos de cette approche, et certaines personnes disent que c'est une mauvaise pratique et je vais avoir des problèmes.

Quelqu'un qui sait à ce sujet avec EF peut m'expliquer plus en détails?

Avez-vous lire c'est une mauvaise pratique? Sans explication?

OriginalL'auteur Acaz Souza | 2011-09-21