C# DBContext使用单例模式的更好方法
我用EntityFramework开发了一个ASP.NET MVC应用程序,我想知道在项目中实现DbContext的Singleton模式是否是最佳实践 这是我的密码:C# DBContext使用单例模式的更好方法,c#,asp.net-mvc,entity-framework,singleton,C#,Asp.net Mvc,Entity Framework,Singleton,我用EntityFramework开发了一个ASP.NET MVC应用程序,我想知道在项目中实现DbContext的Singleton模式是否是最佳实践 这是我的密码: private static Lazy<DbContext> _instance = new Lazy<DbContext>(() => new DbContext()); public static DbContext Instance { get { i
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;
}
}
private static Lazy _instance=new Lazy()
=>newdbcontext());
公共静态DbContext实例
{
得到
{
如果(
_instance.Value.Database.Connection.State==
System.Data.ConnectionState.Closed
)
_instance.Value.Database.Connection.Open();
返回_instance.Value;
}
}
由于连接状态在每次连接到数据库后都会关闭,因此在返回DbContext实例之前,我检查了连接状态,如果连接状态未打开,则将其打开
实际上,我不确定DbContext的实现模式,我想知道在使用DbContext时,是否有更好的方法来实现Singleton?我们是否应该使用Singleton for DbContext?如果您正在开发CRUD类型的应用程序,请调查通用存储库模式,如下所述:
请注意,上下文是一个私有实例变量。如果您正在开发一个CRUD类型的应用程序,请调查通用存储库模式,如下所述:
请注意,上下文是一个私有实例变量。我在需要时使用抽象工厂创建新的DbContext实例这似乎是一个充满危险的想法。在走这条路线之前,请阅读以下内容:我在需要时使用抽象工厂创建新的DbContext实例这似乎是一个充满危险的想法。请阅读以下内容在走这条路线之前: