응용 프로그램에서 먼저 Entity Framework 코드를 사용하고 있습니다. 그러나 모델을 업데이트 한 후이 기능을 사용하는 동안 자동 마이그레이션을 활성화하고 패키지 관리자 콘솔을 사용하여 update-database
을 실행해야합니다. 패키지 관리자 콘솔을 사용하지 않고 누구든지이 문제를 자동화 할 수 있는지 여부와 함께 update-database
을 해결할 수 있습니까?패키지 관리자 콘솔을 사용하지 않고 코드를 통해서만 마이그레이션을 수행하는 방법
답변
Configuration.cs
클래스와 Initial
마이그레이션을 생성하려면 Enable-Migrations
을 한 번 실행하면됩니다. 그런 다음 모델을 변경할 때마다 Add-Migration
을 실행하여 새 마이그레이션을 생성해야하며 데이터베이스에 마이그레이션을 적용하려면 Update-Database
을 실행해야하지만 Enable-Migrations
을 다시 실행할 필요는 없습니다.
당신이 당신의 Configuration
클래스의 생성자에 AutomaticMigrationsEnabled = true
을 설정하여 마이그레이션의 자동 생성을 가능하게하고 DbContext
에 MigrateDatabaseToLatestVersion
데이터베이스 초기화를 사용할 수있는 프로세스를 자동화합니다. 이렇게하면 모델 코드 만 변경하고 패키지 관리자 콘솔에서는 아무 것도하지 않고도 Add-Migration
도 아니고 Update-Database
도 필요하지 않습니다. 프로젝트를 만든 후 처음에 Enable-Migrations
을 실행하여 Initial
이전을 생성해야합니다.
자동 마이그레이션을 수행하면 몇 가지 문제가 발생할 수 있으므로 사용하지 않는 것이 좋습니다. 따라서 모델이 변경 될 때마다 수동으로 Add-Migration
명령을 계속 수행 할 것입니다. MigrateDatabaseToLatestVersion
데이터베이스 초기화 프로그램을 사용하는 경우에도 Update-Database
을 건너 뛸 수 있습니다.
당신의 코드에서 Update-Database
에 동등을 실행하기 위해 DbMigrator
을 사용하는 것입니다 (하지만 당신은 MigrateDatabaseToLatestVersion
데이터베이스 초기화를 사용하는 경우이 작업을 수행 할 필요가 없습니다) 할 수있는 또 다른 방법 :
var migrator = new DbMigrator(new DbMigrationsConfiguration());
migrator.Update();