Linq to Entities是否缓存查询?

4

我将使用Linq to Entities。我的问题是,我将多次调用Linq to Entities。 Linq to Entities查询是否会在多次调用时被缓存?如果不是,是否有一种方法可以缓存查询,以便每次调用时都不需要重新编译或生成。

3个回答

3

一般来说,默认情况下缓存不够。Entity Framework会进行一定量的编译查询缓存,但是它的生命周期不会超过ObjectContext。如果您像我一样使用短暂的ObjectContext,那么您需要一些持久性更长的东西。这个“东西”就是CompiledQuery


1

基本上是的。
在这里查看详情 ->“每当您重新查询对象时,您将始终获得相同的实例” 再来一个链接

更新

编译查询是什么意思?返回始终相同的对象集的查询?编译为IL的查询?返回相同实例的查询?


1
你的第一个链接与LinqToEntities不相关,而是与LinqToSql有关。你的第二个链接暗示着,在开箱即用的基础上,通过一些额外的工作,可以使查询缓存起作用。回答“基本上是”的回答似乎并不清楚,因为有多个问题,“基本上是”看起来不是所有问题的答案。 - Michael Maddox
好的,这里是:http://blogs.msdn.com/jkowalski/archive/2009/06/11/tracing-and-caching-in-entity-framework-available-on-msdn-code-gallery.aspxhttp://blogs.msdn.com/alexj/archive/2009/04/22/tip-14-caching-entity-framework-reference-data.aspx - Ilya Khaprov

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接