2016-07-25 2 views
1

코드 첫 EF 핵심 프로젝트가 있습니다.EF Core 코드의 첫 번째 마이그레이션에서 데이터 마이그레이션을 수행하는 방법은 무엇입니까?

내 스키마 마이그레이션에서 외부 데이터베이스로 데이터 마이그레이션을 수행해야합니다. 그래서 나는 migrationBuilder.Sql()에 돌아갈 수 없다. 필요한 작업은 로컬 데이터베이스에서 쿼리를 실행하고 반환 된 데이터를 외부 데이터베이스에 삽입하는 것입니다. 즉,이 같은 싶지 :

// Obviously this is pseudo-code; these interfaces mostly don't exist 
protected override void Up(MigrationBuilder migrationBuilder) 
{ 
    var results = migrationBuilder.GetQueryResults("some query"); 
    using (var extDb = new ExternalDb()) 
    { 
    foreach (var row in results) 
    { 
     InsertToExternalDb(row, extDb); 
    } 
    } 
} 

을하지만 현재 데이터베이스에서 행을 반환 MigrationBuilder에 어떤 방법을 찾을 수 있고, 심지어 연결을 얻을 수있는 방법을 찾을 수 없습니다 현재 데이터베이스에 원시 ADO 쿼리를 쓸 수있는 문자열.

다른 방법으로 내가 어떻게 할 수 있습니까?

답변

3

시나리오는 EF 코어 1.0.0의 마이그레이션 기능에 포함되지 않습니다. MigrationBuilder API는 데이터베이스 스키마 변환을 위해 SQL을 작성하도록 설계되었으며 여러 데이터베이스 작업을 위해 설계되지 않았습니다.

EF 코어의 소스 코드 https://github.com/aspnet/EntityFramework/tree/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrations에서 직접 마이 그 레이션 구현을 검사 할 수 있습니다.

데이터베이스간에 데이터 마이그레이션을 수행하려면 EF 코어 마이그레이션 외부에서 고유 한 코드를 작성해야합니다.

+0

예치, 나는 또한 GitHub 페이지에서 질문했습니다. 어쨌든 고마워. –