В настоящее время я достигаю вышеуказанного следующим образом.Добавление новой модели к существующей с использованием кода First
Вопрос: Правильно ли это подходит для хранения данных в выходящих таблицах в такт. Я чувствую, что делаю это довольно долго. Любые предложения или альтернативные/правильные способы сделать это?
- Создать новый объект (модель) и соответствующую
DbSet<...>
записи вmyProjectContext.cs
файле - Удалить существующую миграцию из VS2015 и соответствующих
__EFMigrationsHistory
таблицы из SQL Server Db - Run
PM> add-migration mytMigration -context myProjectContext
- закомментируйте все код в новообразованном файле
mytMigration.cs
, за исключением кода, связанного с вновь созданной сущностью (моделью). - Run
PM> update-database -context myProjectContext
Новая таблица (соответствующая добавляемого объекта) будет создаваться в Дб, выходящем вместе с новым __EFMigrationsHistory
столом. Данные во всех существующих таблицах остаются в такте.
UPDATE:
Я следую это official ASP.NET tutorial и - за их советы - зарегистрировали наш контекст с инъекцией зависимостей следующим образом:
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
var connection = @"Server=myDevMachine\SQL2012Instance;Database=myDb;Trusted_Connection=True;";
services.AddDbContext<ABCTestContext>(options => options.UseSqlServer(connection));
...
...
}
@junnas Запустив 'add-migration', вы создадите скрипт' Create Table ... 'для всех существующих таблиц (потому что они находятся в файле модели, а затем 'update-database' попытается воссоздать существующие таблицы – nam
Add-migration должен увидеть, что изменилось в текущей модели, и создать миграцию для обновления схемы БД. Это то, что она должна * сделать, если вы не трогаете таблицу истории миграции или существующие миграции. – juunas
@ junnas В 'add-migration' я должен указать имя миграции - и если это одно и то же имя, он жалуется, что имя myFirstMigration используется существующей миграцией'. Если я использую другое имя, это будет создать новую миграцию и новую запись в таблице истории миграции, связанную с этой новой миграцией.Затем «update-migration» запустит эту новую миграцию, которая затем будет жаловаться на то, что «таблица так и так уже существует и т. Д.». – nam