Я использую .net Core Entity Framework.

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

Scaffold-DbContext "Data Source=(local);Initial Catalog=sampleTenantDb;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Tenants -Force

Поэтому при создании нового арендатора я просто использую

Context.Database.EnsureCreated ( ) ;

Но когда я добавляю новую таблицу в код, я хочу применить ее ко всем арендаторам. Так как мне это сделать?

Я попробовал следующее, но это не работает (без добавления оставшихся таблиц)

myDbContext.Database.Migrate();
0
Anonymous Creator 29 Фев 2020 в 16:41

2 ответа

Лучший ответ

Если ваш DbContext создан с помощью Scaffold-DbContext, он не будет иметь Миграции. Это рабочий процесс, основанный на базе данных, в котором вы будете применять изменения DDL к базам данных клиентов с помощью сценария, возможно, созданного с помощью Инструменты данных SQL Server.

1
David Browne - Microsoft 29 Фев 2020 в 18:33

Вам необходимо создать несколько объектов dbcontext и передать строку подключения таким образом, чтобы вы могли обновить несколько БД

1
balvinder singh 29 Фев 2020 в 17:56