我建立一個應用程序使用EF的語境中Singleton模式像會話NHibernate的工作:實體框架上下文中辛格爾頓
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可以解釋我的更多細節?
你只* *讀它是不好的做法?沒有解釋? –