Как разделить Entity Framework между двумя приложениями? - PullRequest
0 голосов
/ 13 апреля 2020

У меня четыре проекта 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

Спасибо

1 Ответ

3 голосов
/ 13 апреля 2020

В моем хранилище используется состояние c context

Не делайте этого. Контекст должен быть временным или ограничен HTTP-запросом.

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