我已经浏览了许多文章,但是在窗口表单应用程序中找到了有关dbcontext范围的信息。到目前为止,我已经看到以下实现:
1(第一次实施
using(var db=new DbContext())
{
// perform operations
}
2(第二实施
public class A
{
private DbContext _db;
public void DoSomething()
{
_db.Students.Find(1);
}
}
3(第三实施
使用Singleton类来初始化DBContext并在整个程序/应用程序中调用它
4(第四实施
在通用或设置类中声明dbcontext为静态属性,并在整个项目/应用程序中称为
那么,我的问题是应用程序中DBContext的最佳实现是什么?为什么?其他不是最好的实现的缺点?
dbContext是一种工作单位模式,其设计为(a(实例化和(b(短暂的生活。
您可以使用长寿命DBContext遇到很多问题。例如,检索到的实体是每个dbcontext缓存的,因此可以发生:实体框架恢复更改