2016-07-25 2 views
1

Ich habe ein Code First EF Core-Projekt.Wie werden Datenmigrationen in einer ersten EF Core-Code-Migration durchgeführt?

In meiner Schemamigration muss ich eine Datenmigration zu einer externen Datenbank durchführen. Also kann ich nicht auf migrationBuilder.Sql() zurückgreifen. Ich muss eine Abfrage für die lokale Datenbank ausführen und die zurückgegebenen Daten in die externe Datenbank einfügen. Mit anderen Worten, ich möchte etwas tun:

// 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); 
    } 
    } 
} 

Aber ich kann keine Methode auf MigrationBuilder finden, die Zeilen aus der aktuellen Datenbank zurückgibt, und ich kann nicht einmal einen Weg finden, um die Verbindung zu erhalten string so, dass ich eine rohe ADO-Abfrage in die aktuelle Datenbank schreiben könnte.

Irgendwelche anderen Ideen, wie ich das tun könnte?

Antwort

3

Das Szenario fällt nicht unter die Migrationsfähigkeit von EF Core 1.0.0. Die API MigrationBuilder dient zum Erstellen von SQL zum Transformieren des Datenbankschemas und ist nicht für die Arbeit mit mehreren Datenbanken ausgelegt.

Sie können die Implementierung von Migrationen für sich im EF Core-Quellcode unter https://github.com/aspnet/EntityFramework/tree/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrations überprüfen.

Um eine Datenmigration zwischen Datenbanken durchzuführen, müssen Sie außerhalb von EF Core-Migrationen eigenen Code schreiben.

+0

Ja, das habe ich auch herausgefunden, indem ich auf ihrer GitHub-Seite gefragt habe. Danke trotzdem. –

Verwandte Themen