2016-09-20 4 views
1

Wir verwenden den Entity Framework-Code zuerst mit Migrationen. Wir haben es ohne irgendwelche Probleme laufen. Wir versuchen, Daten von einer alten Datenbank auf die neue zu migrieren. Wir müssen die Datenbank löschen, alle Tabellen erstellen, die Daten einfügen und dann die Primärschlüssel und Fremdschlüssel hinzufügen. Wir möchten dies in EF tun, um die zu migrierenden Daten zu formatieren. Es ist uns gelungen, die Datenbank zu erstellen und dann die Daten zu migrieren, aber die Primärschlüssel, die in der alten Datenbank enthalten sind, kommen nicht über. Ich habe versucht, die ExecuteSqlCommand vor einem bulkinsert mit:Entity Framework Code Erste Migration und Datenmigrationen

ctx.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[TableName] ON"); 

aber das funktioniert nicht, weil die Migration scipts die idenity auf true gesetzt haben:

Id = c.Int(nullable: false, identity: true), 

Gibt es eine Möglichkeit, die Identität zu auf Falsch, nachdem die Daten in die Datenbank eingefügt wurden, die Identität auf True setzen?

Antwort

1

Sie tun es auf die richtige Weise (ID ist eine Identität und Sie aktivieren Identität einfügen). SET IDENTITY_INSERT ON ist nur für die Sitzung (die Verbindung) gültig, daher müssen Sie nur eine Verbindung verwenden.
Auch müssen Sie die Datenbank mit INSERT-Anweisungen (und nicht EF SaveChanges).

Verwandte Themen