Ich habe Lösung für Stored Procedures Erstellung genau wie in dieser Antwort https://stackoverflow.com/a/15171900.Gespeicherte Prozedur in Code zuerst aktualisieren DbMigration
Ich betreibe
Sql(Properties.Resources.Create_sp_DoSomething);
in meiner Anfangs DbMigration.
Meine SQL-Skripte haben Code, um zuerst den vorhandenen SP zu löschen und dann einen neuen aktualisierten SP zu erstellen. Also, wenn ich renne
Sql(Properties.Resources.Create_sp_DoSomething);
in neue DbMigration, und Logik in SP ist alles funktioniert gut.
Das Problem entsteht, wenn ich mit Spalten Prozedur aktualisieren möchten Stored (sagen IsActive lässt), die später in wurden zu modellieren verpflichtet, und ich bin Aktualisierung ohne DB bestehenden (so neue DB erstellt wird). Dann schlägt es mit
Ungültiger Spaltenname 'IsActive'.
Jede gute Lösung für dieses andere als alle bestehenden Anrufe
EntfernenSql (Properties.Resources.Create_sp_DoSomething);
und haben es nur in der neuesten DbMigration.
Wenn Sie machen dieses Skript idempotent (die benötigt wird) Sie * GO * Anweisungen zwischen Tropfen hinzufügen müssen und SP erstellen und diese Ansatz mit * ExecuteSqlComma nd() * benötigt etwas wie https://shmehralam.wordpress.com/2009/05/12/c-executing-batch-t-sql-scripts-with-go-statements/ –