2009-10-25 123 views
4

我將使用Linq to Entities。我的問題是,我會多次給Linq打電話給實體。將Linq實體查詢緩存多少次?如果沒有,有沒有辦法來緩存查詢,以便每次調用時都不會編譯或生成查詢。Linq到實體緩存查詢?

回答

3

一般來說,默認情況下沒有足夠的緩存。實體框架有a certain amount of compiled query caching,但它的存活時間不會超過ObjectContext。如果你像我一樣有短命的ObjectContexts,你會想要一些持續時間更長的東西。這個「東西」是CompiledQuery

1

基本上可以。
See here for details - >「您總能獲得相同的實例回來時,你重新查詢的對象」 One more link

UPDATE

你指編譯查詢什麼?查詢哪些返回總是相同的一組對象?查詢編譯爲IL?查詢哪些返回相同的實例?

+1

你的第一個鏈接是有關LinqToSql,不LinqToEntities。您的第二個鏈接意味着,除了開箱即用提供的額外工作外,可以使查詢緩存正常工作。 「基本上是」的答案似乎不清楚,因爲有多個問題,「基本上是」是不會成爲所有問題的答案。 – 2009-10-25 12:00:12

+0

好的,這裏是: http://blogs.msdn.com/jkowalski/archive/2009/06/11/tracing-and-caching-in-entity-framework-available-on-msdn-code-gallery。 aspx http://blogs.msdn.com/alexj/archive/2009/04/22/tip-14-caching-entity-framework-reference-data.aspx – 2009-10-25 14:13:52