Один и тот же запрос, несколько dbcontext
Привет,
Я создал систему мониторинга для наших облачных сред.
Среды - это отдельные сайты со своей собственной базой данных. Поскольку на каждом сайте запущено несколько задач, нам нужно перехватывать их, когда задача терпит неудачу. Есть и другие вещи, которые я отслеживаю, но идея та же.
Ситуация выглядит следующим образом:
У меня есть свой сайт мониторинга (ASP.NET Core + EF Core), который получает свои данные из базы данных на сервере баз данных. Эта база данных выполняет запланированные хранимые процедуры, которые захватывают различные вещи, которые я хочу контролировать, из всех баз данных на сервере.
Это работает хорошо и быстро. В моей первой версии я выполнял курсор на всех базах данных с каждым веб-запросом, так что это было не слишком эффективно.
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что мы интегрируем новые серверы баз данных, каждый из которых имеет новые среды, указывающие на него.
Я хотел бы избежать создания нового сайта монитора для каждого нового сервера базы данных.
В моей новой версии Монитора я хотел бы запросить каждый сервер в одной базе данных, которая хранит различные ошибки для сред на этом сервере.
То, что я сделал до сих пор, - это создал несколько классов DbContext, указывающих на их соответствующий сервер баз данных и базу данных "ошибок", но совместно использующих одни и те же сущности.
Чтобы получить свою информацию, я выполняю один и тот же точный запрос LINQ для всех DbContext и объединяю результаты перед их отображением.
Хотя это работает, должен же быть лучший способ справиться с этим?
Любое предложение будет оценено по достоинству.
Что я уже пробовал:
Я попытался поискать в интернете похожие установки, но не смог найти ни одной подходящей для моей ситуации.