Golden Basim Ответов: 1

Как очистить или игнорировать весь кэш entity framework за один раз ?


привет,

Я пишу программное обеспечение ( огромное программное обеспечение около 200 форм, которое работает в сети), каждая форма имеет много запросов.

теперь мне нужно очистить кэш EF6. Мне нужно загружать данные из базы данных, а не из контекстного кэша.


каков самый простой и экономящий время способ очистить этот кэш? есть ли какой-нибудь метод применить его ко всему эф один раз, не повторяя его во всех формах?

Что я уже пробовал:

я искал и находил эти методы, но все они не годились для применения один раз и трудно выполнялись много раз.

Отключить отслеживание с помощью AsNoTracking()
Выбросьте DbContext и создайте новый
Используйте ObjectQuery вместо DBQuery и установите MergeOptions
Обновление сущностей
Отсоедините сущности
Вызовите GetDatabaseValues, чтобы получить обновленные значения для одной сущности

1 Ответов

Рейтинг:
9

Dave Kreskowiak

Этот вопрос заставляет меня задуматься, как вы создаете экземпляр DbContext и используете его. Чтобы "очистить кэш", нужно просто удалить экземпляр контекста и создать другой.

Вы, безусловно, не должны создавать экземпляр DbContext и просто удерживать его в течение всего срока службы вашего приложения.