Есть ли способ получить сущность из кэша, а не из базы данных в EF? Как механизм ASP.NET Cache - PullRequest
1 голос
/ 12 марта 2012

В ASP.NET мы всегда сохраняем объект или коллекцию в кеше, то есть, когда мы хотим использовать их, мы можем судить, существует ли объект или коллекция в кэше, если они существуют, мы извлекаем ихиз кеша, если нет, извлеките его из базы данных.Имеет ли EF аналогичный механизм, после вызова «context.ObjectSet.AddObject (object)» или вызова метода для присоединения объекта к контексту, сохранения его в кеше, и когда мы хотим извлечь объект, оцените, имеет ли объектуже существует в кешеКто-нибудь может помочь?

1 Ответ

0 голосов
/ 12 марта 2012

Вы должны запросить ObjectStateManager, чтобы узнать, содержит ли оно вашу сущность:

var entity = context.ObjectStateManager()
                    .GetObjectStateEntries(~EntityState.Detached)
                    .Where(e => !e.IsRelationship)
                    .Select(e => e.Entity)
                    .OfType<YourEntityType>()
                    .FirstOrDefault(...); // uniquely identify entity you are looking for
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...