Использовать несколько огромных баз данных в одном запросе Entity Framework Core с SQL Server? - PullRequest
0 голосов
/ 29 октября 2019

Я хочу запросить несколько таблиц из разных баз данных в одном запросе с 1 или 2 dbcontext. Я искал некоторую информацию, и, кажется, нелегко заставить ее работать идеально.

Мне нужно сделать несколько запросов с 5 или 6 таблицами из 3 или 4 разных баз данных одновременно.

  • Я пытался использовать реализацию dbcontext вдругой, но у меня проблема с первичными ключами, которых у меня нет, если я использую только одну базу данных.
  • Я пробовал 2 dbcontext отдельно, но я получаю ошибку:

Невозможно использовать несколько экземпляров DbContext в одном сообщении выполнения запроса.

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

Это в Entity Framework Core 2.2 или 3, я уже пробовал оба. У меня уже есть созданные базы данных, поэтому я создал их.

У меня есть один пример с двумя базами данных:

var data =
   from j in jsa.TbEmp
   join i in info.TbcEmpGral on j.fiEmp equals i.fiEmp
   where i.fiEmp == 361591
   select i.FcName.ToString() + " - " + i.fiDate.ToString();

1 Ответ

1 голос
/ 29 октября 2019

Я хочу запросить несколько таблиц из разных баз данных [на одном сервере] в одном запросе

Самый простой способ сделать это - создать представления или синонимы для всех таблиц вединая база данных. EF не сможет автоматически построить модель, но если вы создадите модель вручную, EF просто отправит SQL в эту единственную базу данных , как если бы содержала все таблицы, и SQL Server перенаправитзапросы к соответствующим объектам через синонимы или представления.

...