【问题标题】:Best place/way to define context Entity Framework [duplicate]定义上下文实体框架的最佳位置/方式[重复]
【发布时间】:2016-05-08 17:00:39
【问题描述】:

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

  1. 在整个 App 中定义一个 Context,然后在整个 App 中使用它 生命周期,所以这里的 Context 会在关闭后被释放 应用程序,我在 MainWindow 中定义了这个变量,然后在我的所有应用程序窗口和用户控制中使用它

    public static SC_Context Context = new SC_Context();

  2. 每次我们要处理数据库时定义上下文,然后处理该上下文。这样,我在里面做部分类和写方法:

    使用 (SC_Context 上下文 = 新 SC_Context()) { //布拉布拉布拉 }

实际上,我在许多应用程序、网站和 Windows 应用程序中都使用了这两种方式,并且我看到许多示例和开发人员都在使用它们。

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

【问题讨论】:

  • 标记为重复,但除此之外,这个问题对于 Stack Overflow 来说过于基于意见。也就是说,我读过的关于这方面最好的是this

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


【解决方案1】:

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

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

  1. 使用 Web 应用程序时,请使用每个上下文实例 请求。
  2. 使用 Windows Presentation Foundation (WPF) 或 Windows 时 表单,每个表单使用一个上下文实例。这使您可以使用 上下文提供的更改跟踪功能。

总之,规则是:每个请求的上下文和每个表单生命周期的上下文。

【讨论】:

  • Thnx,这些链接非常有用:)
  • 谢谢。如果您觉得它对您有用,请点赞或标记为答案:)
猜你喜欢
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多