-1

응용 프로그램에서 먼저 Entity Framework 코드를 사용하고 있습니다. 그러나 모델을 업데이트 한 후이 기능을 사용하는 동안 자동 마이그레이션을 활성화하고 패키지 관리자 콘솔을 사용하여 update-database을 실행해야합니다. 패키지 관리자 콘솔을 사용하지 않고 누구든지이 문제를 자동화 할 수 있는지 여부와 함께 update-database을 해결할 수 있습니까?패키지 관리자 콘솔을 사용하지 않고 코드를 통해서만 마이그레이션을 수행하는 방법

답변

1

Configuration.cs 클래스와 Initial 마이그레이션을 생성하려면 Enable-Migrations을 한 번 실행하면됩니다. 그런 다음 모델을 변경할 때마다 Add-Migration을 실행하여 새 마이그레이션을 생성해야하며 데이터베이스에 마이그레이션을 적용하려면 Update-Database을 실행해야하지만 Enable-Migrations을 다시 실행할 필요는 없습니다.

당신이 당신의 Configuration 클래스의 생성자에 AutomaticMigrationsEnabled = true을 설정하여 마이그레이션의 자동 생성을 가능하게하고 DbContextMigrateDatabaseToLatestVersion 데이터베이스 초기화를 사용할 수있는 프로세스를 자동화합니다. 이렇게하면 모델 코드 만 변경하고 패키지 관리자 콘솔에서는 아무 것도하지 않고도 Add-Migration도 아니고 Update-Database도 필요하지 않습니다. 프로젝트를 만든 후 처음에 Enable-Migrations을 실행하여 Initial 이전을 생성해야합니다.

자동 마이그레이션을 수행하면 몇 가지 문제가 발생할 수 있으므로 사용하지 않는 것이 좋습니다. 따라서 모델이 변경 될 때마다 수동으로 Add-Migration 명령을 계속 수행 할 것입니다. MigrateDatabaseToLatestVersion 데이터베이스 초기화 프로그램을 사용하는 경우에도 Update-Database을 건너 뛸 수 있습니다.

당신의 코드에서 Update-Database에 동등을 실행하기 위해 DbMigrator을 사용하는 것입니다 (하지만 당신은 MigrateDatabaseToLatestVersion 데이터베이스 초기화를 사용하는 경우이 작업을 수행 할 필요가 없습니다) 할 수있는 또 다른 방법 :

var migrator = new DbMigrator(new DbMigrationsConfiguration()); 
migrator.Update(); 
관련 문제