定义上下文实体框架

时间:2016-05-08 17:00:39

标签: c# asp.net-mvc wpf entity-framework

我认为有两种主要方式(或更多)来定义实体框架上下文

  1. 在整个应用程序中定义一个上下文,然后在所有应用程序中使用它 生命周期,所以这里的Context将在关闭后处理掉 app,我在MainWindow中定义了这个变量,然后我在所有应用程序窗口和User Conteols中使用它

    public static SC_Context Context = new SC_Context();

  2. 每次我们想要处理数据库时定义上下文并在此之后处理该上下文。通过这种方式,我在里面制作了部分类和写方法:

    使用(SC_Context Context = new SC_Context()) {     // Bla Bla Bla }

  3. 实际上,我在许多应用程序,网站和Windows应用程序中使用了两种方式,我看到许多样本和开发人员使用它们。

    我的问题只是: 哪个更好 - 使用整个应用程序的一个上下文或使用DB- for App性能和RAM消耗的每个过程使用一个上下文,为什么

1 个答案:

答案 0 :(得分:1)

根据MSDN(或此blog),您应该使用第二种方式,使用使用语句。当您使用使用时,编译器会自动创建try/finally块并在finally块中调用dispose。

在决定上下文的生命周期时,以下是一些一般性指导原则:

  1. 使用Web应用程序时,请使用每个上下文实例 请求。
  2. 使用Windows Presentation Foundation(WPF)或Windows时 表单,使用每个表单的上下文实例。这可以让你使用 上下文提供的更改跟踪功能。
  3. 总之,规则是:每个请求的上下文和每个表单生存期的上下文。