实体框架dbcontext范围窗口表单



我已经浏览了许多文章,但是在窗口表单应用程序中找到了有关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缓存的,因此可以发生:实体框架恢复更改

最新更新