Контекст Entity Framework в синглтоне

Я создаю приложение, которое использует Context of EF в Singleton Pattern, например, NHibernate для работы с 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;
    }
}

Я использую Ninject, чтобы ввести контекст:

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

Я читаю об этом подходе, и некоторые люди говорят, что это плохая практика, и у меня будут проблемы.

Кто-то, кто знает об этом с EF, может объяснить мне более подробно?

Ответы на вопрос(4)

Ваш ответ на вопрос