【问题标题】:Entity Framework Caching实体框架缓存
【发布时间】:2012-12-13 18:30:48
【问题描述】:

我正在阅读一篇关于 Nhibernate 和 EF 之间差异的文章。 但我不明白他们想在字段上缓存时说什么。

对于实体框架,ObjectContext/DbContext 保存配置、模型并充当工作单元,保存对所有已知实体实例的引用。因此,这个类不像它的 NHibernate 对应物那样轻量级,并且在字段上缓存实例的示例并不少见。

我没有创建文章链接,因为我不能 100% 确定它是否被允许。

【问题讨论】:

标签: entity-framework caching


【解决方案1】:

仔细注意措辞;他们谈论的是DbContext 本身,并评论说“实例”(DbContext)缓存在字段上的示例并不罕见。

他们的意思是,与其在方法中创建和销毁具有局部范围的 DbContext 对象,您会看到人们将 DbContext 实例保存到更广泛对象的字段中并重用它。

【讨论】:

  • 在存储库模式的情况下,在不同存储库之间共享上下文是否不正常?正如 MSDN link 上所述;打开和关闭数据库连接的成本非常高。
  • @JVGAG Repository != DbContext != Connection。 ADO.NET(在实体框架后面运行)为您处理所有连接池。您的 DbContext 是否长期存在 与此完全无关。您链接到的页面说明 ADO.NET/EF 会为您处理所有这些 - 仅“根据需要”打开/关闭连接
  • 他们是否在以下链接中使用这种方法? link 他们为多个存储库持有一个 Dbcontext。
  • @JVGAG 他们在多个存储库中“持有”一个 DbContext,是的。但这与底层 DbConnections 无关,顺便说一句。
猜你喜欢
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
相关资源
最近更新 更多