2016-05-14 25 views
0

Ich muss eine Migration erstellen, die einige Zeilen hinzufügen, aber nur, wenn sie nicht vorhanden sind.So fügen Sie ein rowif ein Schlüssel ist nicht vorhanden mit FluentMigrator

Wenn bei einem Primärschlüsselkonflikt die Zeile bereits vorhanden ist, schlägt die Migration fehl.

Ich weiß, wie man eine Tabelle erstellt, wenn die Tabelle nicht existiert, aber ich kann nicht das gleiche für Daten tun.

Eine weitere Option könnte ein Upsert sein oder Betrieb zusammenführen, aber nicht finden, wie es mit FluentMigrator zu tun (ohne einen Skript ausgeführt wird)

Antwort

0

Sie können es nicht direkt die fließend-Schnittstelle. Wie Sie sagten, müssten Sie entweder ein Skript ausführen oder die sql-Befehle in die Migration selbst schreiben und ausführen. Etwas wie

public override void Up() 
{ 
    var sqlCommand = string.Format([YOUR SQL COMMANDS]); 
    Execute.Sql(sqlCommand); 
}