У меня четыре проекта VS в одном решении со следующей архитектурой:
- Приложение администратора -> Служба -> Репозиторий
- Приложение конечного пользователя -> Служба - Репозиторий * 1006 Проекты *
Admin
и User
совместно используют одни и те же слои Service
/ Repository
, но каждый из них имеет свой собственный сервер (user.domain.com
и admin.domain.com
), поэтому они находятся в разных пулах IIS.
Я публикую sh их отдельно, однако, когда я делаю некоторые изменения в админке, это не оказывает никакого влияния на приложение конечного пользователя из-за кэширования Entity Framework. Мой репозиторий использует статический c контекст, я не могу потерять изменения сущностей, поэтому не могу превратить его в локальный контекст.
Я пробовал это в приложении пользователя:
foreach (var entity in _context.ChangeTracker.Entries())
{
entity.Reload();
}
сработало, но приложение стало слишком медленным.
Есть ли хороший способ идентифицировать изменения базы данных, используя один и тот же слой EF в двух разных приложениях?
Или отключить только кэширование приложения User
..
Я использую EF6 и. NET 4.6.1
Спасибо