Ich verwende Entity Framework und Codefirst, um eine gespeicherte Prozedur zu erstellen. Während ich reed, sollten wir einige Schritte im Paket-Manager tun, um SP zu erstellen.Update-Datenbank funktioniert nicht in Code zuerst
1 - ermöglichen Migration
2- Add-Migration myClass
3- update-Datenbank
und in Myclass(new created)
ich meinen SP-Code in UP() -Methode schreiben SP zu erstellen. funktioniert gut!! ABER wenn ich SP ändere und update-database erneut ausführe funktioniert es nicht und ich muss einen weiteren add-migration Befehl ausführen um MYclass2 zu erstellen. Ist das richtig? Ich meine jedes Mal, wenn ich Add-Migration schreiben sollte?
diese mycode ist
public override void Up()
{
Sql(@"Create procedure testSp
as
select std.Id as stdName, std.Name as MajorName, mj.Name from dbo.Students as std
inner join dbo.Majors as mj on std.Id = mj.Id
");
}
public override void Down()
{
Sql("drop procedure testSp");
}
wenn ich update-Datenbank laufen wieder das Ergebnis "No pending explicit migration"
auch wenn ich die SQL-Abfrage zu ändern "Prozedur Alter ...." es nicht funktioniert, keine Änderung passiert. dank
EDITED
dieses Szenario betrachten, möchte ich meine SP-Namen ändern (nur ein Beispiel) so muss ich die Abfrage ändern, um "Speicher Prozedur tespSP2 Alter ..." oder irgendeine andere Änderung, sollte ich add-migration wieder ausführen? oder Update-Datenbank soll es tun ??
Verschiedene Techniken diskutiert [hier] (https://stackoverflow.com/questions/7667630/can-you-create-sql-views-stored-procedure-using-entity-framework-4-1-code- Tannen). –