代码之家  ›  专栏  ›  技术社区  ›  Pradeep

NHibernate SessionFactory和EF 4.0 ObjectContext之间的区别

  •  3
  • Pradeep  · 技术社区  · 14 年前

    在NHibernate中,SessionFactory是一个很重的对象,建议在应用程序生命周期中创建一次SessionFactory。然而,一旦我们得到SessionFactory的句柄,我们就在执行任何DB操作之前调用它的open()。

    在EntityFramework中,每次对底层存储执行任何操作之前,我们都需要创建ObjectContext的对象。在EF的情况下没有这样的开口。

    我的问题是:

    在EF中创建上下文是否类似于在NHibernate中对SessionFactory调用Open()?

    或者

    更新:

    http://dotnetslackers.com/articles/ado_net/Managing-Entity-Framework-ObjectContext-lifespan-and-scope-in-n-layered-ASP-NET-applications.aspx#1390

    但是,不应该使用静态 应用程序,因为静态成员 寿命超过 单个HTTP请求。实际上他们是 与生命周期有关 AppDomain,可能是分钟或 小时。实际上,静态类成员 在ASP.NET甚至在 中的ObjectContext实例 可以同时使用多个线程 造成严重问题。

    在实体框架的情况下,这是一种错误的做法吗?

    1 回复  |  直到 12 年前
        1
  •  3
  •   Craig Stuntz    14 年前

    EF中的OC更像NH中的Session,而不是SessionFactory。