Для обработки нескольких схем в одном DBContext - PullRequest
3 голосов
/ 06 апреля 2019

Я использую существующую базу данных с новым приложением ASP.Net Core 2.0.База данных имеет две схемы, dbo и notinapplication.Я не хочу создавать модель таблиц схемы notinapplication.Поэтому я использую следующий код в диспетчере пакетов, и он работает нормально.

Scaffold-DbContext "Server=localhost; Database=TestServer; Trusted_Connection=True; 
MultipleActiveResultSets=true;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
-UseDatabaseNames -Force -Context "DbContext" -Schema "dbo"

Таким образом, я получаю только таблицы из dbo в DbContext, а таблицы схемы notinapplication игнорируются.

Однако теперь яесть новая схема с именем user, которая должна быть частью модели.

Scaffold-DbContext "Server=localhost; Database=TestServer; Trusted_Connection=True; 
MultipleActiveResultSets=true;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
-UseDatabaseNames -Force -Context "DbContext" -Schema "user"

Но использование приведенного выше кода исключает таблицы из схемы dbo.Каковы мои варианты иметь таблицы обеих схем в DBContext при игнорировании схемы notinapplication.

И если мне действительно нужно создавать разные контексты, возможно ли запросить несколько контекстов БД в одном запросе?

Ответы [ 2 ]

2 голосов
/ 08 апреля 2019

Все, что вам нужно сделать, чтобы предоставить несколько значений, это использовать «синтаксис массива».

-Schema "schema1","schema2","schema3"

В вашем случае вам нужно сделать

Scaffold-DbContext "Server=localhost; Database=TestServer; Trusted_Connection=True; 
MultipleActiveResultSets=true;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
-UseDatabaseNames -Force -Context "DbContext" -Schema "dbo","user"
1 голос
/ 06 апреля 2019

Вы можете выполнить задание , используя параметр -Schema несколько раз, однако: /

 -Schema "dbo" -Schema "user"
...