【问题标题】:Is there an easy way to use ASP.NET caching with Entity Framework 4.1 Code First?是否有一种简单的方法可以将 ASP.NET 缓存与 Entity Framework 4.1 Code First 结合使用?
【发布时间】:2023-04-02 20:59:01
【问题描述】:

我们首先使用 EF 代码和 Windows Azure 上的 App Fabric 缓存(不过,我认为这个问题确实更通用,因为我们将它用作 ASP.net 缓存提供程序)。有没有一种简单的方法来启用 D​​Bset 对象的缓存?我们的数据库很小并且更新不频繁,所以理想情况下我们可以将整个数据库缓存在内存中,并使用一些 ttl 到期来刷新对象集。有经验的人首先使用 EF 代码进行缓存的任何建议都会很棒。

【问题讨论】:

  • 我相信 EF 实际上会自动缓存结果。

标签: entity-framework caching asp.net-mvc-3 ef-code-first entity-framework-4.1


【解决方案1】:

Don't do that。如果要缓存数据,请将它们提取到单独的 Lists 并单独缓存。缓存DbSet 意味着缓存DbContext,我将在实体框架中将其提升为anity-pattern。身份映射和工作单元的问题在链接答案中进行了描述。另一个问题是没有真正的刷新。如果你真的想刷新数据,你必须处理上下文并创建一个新的。上下文也不是线程安全的,因此在多个请求之间共享它可能会导致意外结果。

【讨论】:

    【解决方案2】:

    也许您可以使用此解决方案,但我从未在 Azure 中使用过它:

    EF Caching Provider

    【讨论】:

      猜你喜欢
      • 2017-09-01
      • 2023-04-02
      • 2012-05-15
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 2015-01-06
      • 2012-01-25
      • 1970-01-01
      相关资源
      最近更新 更多