Entity framework 是否有一种简单的方法可以先将ASP.NET缓存与Entity Framework 4.1代码一起使用?

Entity framework 是否有一种简单的方法可以先将ASP.NET缓存与Entity Framework 4.1代码一起使用?,entity-framework,caching,asp.net-mvc-3,ef-code-first,entity-framework-4.1,Entity Framework,Caching,Asp.net Mvc 3,Ef Code First,Entity Framework 4.1,我们首先在WindowsAzure上的应用结构缓存中使用EF代码(不过,我认为这个问题实际上更一般,因为我们将其用作ASP.net缓存提供程序)。是否有一种简单的方法来启用DBset对象的缓存?我们的数据库很小,更新不频繁,因此理想情况下,我们可以将整个数据库缓存在内存中,并使用一些ttl过期来刷新对象集。有使用EF代码进行缓存经验的人提供的任何建议都会很好。。如果要缓存数据,请将它们提取到单独的列表中并单独缓存。缓存DbSet意味着缓存DbContext,我将在实体框架中将其提升为一种实体模式

我们首先在WindowsAzure上的应用结构缓存中使用EF代码(不过,我认为这个问题实际上更一般,因为我们将其用作ASP.net缓存提供程序)。是否有一种简单的方法来启用DBset对象的缓存?我们的数据库很小,更新不频繁,因此理想情况下,我们可以将整个数据库缓存在内存中,并使用一些ttl过期来刷新对象集。有使用EF代码进行缓存经验的人提供的任何建议都会很好。

。如果要缓存数据,请将它们提取到单独的列表中并单独缓存。缓存
DbSet
意味着缓存
DbContext
,我将在实体框架中将其提升为一种实体模式。有关身份图和工作单元的问题,请参见链接答案。另一个问题是没有真正的更新。如果确实要刷新数据,则必须处理上下文并创建一个新的上下文。上下文也不是线程安全的,因此在多个请求之间共享它可能会导致意外结果

。如果要缓存数据,请将它们提取到单独的列表中并单独缓存。缓存
DbSet
意味着缓存
DbContext
,我将在实体框架中将其提升为一种实体模式。有关身份图和工作单元的问题,请参见链接答案。另一个问题是没有真正的更新。如果确实要刷新数据,则必须处理上下文并创建一个新的上下文。上下文也不是线程安全的,因此在多个请求之间共享它可能会导致意外结果

也许您可以使用此解决方案,但我从未将其用于Azure:


也许您可以使用此解决方案,但我从未将其用于Azure:


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