2016-07-16 5 views
5

이전 버전의 Entity Framework에서는 DbMigrator 클래스를 사용하여 프로그래밍 방식으로 코드 우선 마이그레이션을 제어 할 수있었습니다 (예 : 사용 가능한 마이그레이션 확인 및 적용). 그 클래스는 여전히 어딘가에 존재합니까 아니면 기능 대체가 있습니까? 나는 초기 RC 버전에서 대체물을 가리키는 글을 발견했으나 그것도 코어 1.0에서 사라진 것으로 보인다. 문제없이 CLI를 통해 마이그레이션을 제어 할 수는 있지만 사용자 정의 툴링 시나리오를위한 코드 내 솔루션이 필요하다고 생각합니다.Entity Framework 코드를 사용하여 코어 1.0 코드 우선 마이그레이션?

+0

하지만, ASP.NET MVC 코어 1.0 엔티티 프레임 워크 코어 1.0이 참조 : http://stackoverflow.com/ 질문/38282138/run-database-migrations-using-entity-framework-on-application-start –

답변

6

기능 대체는 주로 Microsoft.EntityFrameworkCore.Migrations 네임 스페이스에있는 API의 몇 가지 위치에서 찾을 수 있습니다.

일부 장소

는 볼 수 있습니다 : IMigrator.Migrate를 제외

현재 마이그레이션을 찾기 위해

  • IMigrationAssembly ( DbContext.Database.Migrate()를 호출 한 것과 같은 상태가된다)
  • IHistoryRepository.GetAppliedMigrations()
  • IMigrator.Migrate(string targetMigration)

      , 이러한 API를 사용하는 것은 일반적으로 ervice out of internal EF Core's service container. 이것은 dbcontext에서 .GetService<TService>()을 호출하여 수행됩니다.

      예 :

      var migrator = context.GetService<IMigrator>().Migrate(); 
      
      비슷한 뭔가를 찾고이 질문에 오는 사람들을 위해
  • +0

    GetService 메서드를 내 컨텍스트에서 사용할 수 없습니다. 나는 그것이 확장 방법이라고 가정하고 있는가? 어떤 의존 패키지와 네임 스페이스가 그 방법을 포함하고 있습니까? –

    +0

    그것은'Microsoft.EntityFrameworkCore.Infrastructure' 네임 스페이스에 있습니다. 추가 패키지가 필요하지 않습니다. – natemcmaster