Linq到实体缓存查询吗?

时间:2009-10-25 05:08:08

标签: c# linq sql-server-2005 entity-framework linq-to-entities

我将使用Linq to Entities。我的问题是,我将多次调用Linq to Entities。是否会多次调用Linq to Entities查询?如果没有,那么有一种方法可以缓存查询,因此每次调用时都不会编译或生成查询。

3 个答案:

答案 0 :(得分:3)

一般来说,默认情况下缓存不够。实体框架有a certain amount of compiled query caching,但它不会比ObjectContext更长。如果你像我一样拥有短暂的ObjectContexts,你会想要一些持续时间更长的东西。那个“东西”是CompiledQuery

答案 1 :(得分:1)

基本上是的。
See here for details - > “每当你重新查询对象时,你总会得到相同的实例” One more link

<强>更新

编译查询的含义是什么?返回始终是同一组对象的查询?编译成IL的查询?返回相同实例的查询?

答案 2 :(得分:1)

您可以使用已编译的查询来防止每次生成查询。如果您多次使用完全相同的查询,这将显着提高性能。

http://thedatafarm.com/blog/data-access/compiled-queries-in-entity-framework/