Линк к сущности кеширует запросы? - PullRequest
4 голосов
/ 25 октября 2009

Я буду использовать Linq to Entities. Вопрос, который у меня возник, заключается в том, что я буду звонить в Linq Entities несколько раз. Будут ли кэшироваться запросы Linq to Entities, будет ли он вызываться несколько раз? Если нет, есть ли способ кэшировать запрос, чтобы он не компилировался и не генерировался при каждом его вызове.

Ответы [ 3 ]

3 голосов
/ 26 октября 2009

Вообще говоря, недостаточно кэширования по умолчанию. существует определенное количество кэшированных скомпилированных запросов , которое делает Entity Framework, но оно не живет дольше, чем ObjectContext. Если у вас есть недолговечные ObjectContexts, как и я, вам нужно что-то, что длится дольше. Это "что-то" - CompiledQuery .

1 голос
/ 26 октября 2009

Вы можете использовать скомпилированный запрос, чтобы не создавать запрос каждый раз. Это значительно повысит производительность, если вы используете один и тот же запрос несколько раз.

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

1 голос
/ 25 октября 2009

В основном да.
Подробнее см. Здесь -> "вы всегда получите один и тот же экземпляр, когда запросите объект" Еще одна ссылка

UPDATE

что вы подразумеваете под скомпилированными запросами? Запросы, которые всегда возвращают один и тот же набор объектов? запросы, которые скомпилированы в IL? запросы, которые возвращают одинаковые экземпляры?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...