J'utilise entity framework et Codefirst pour créer une procédure stockée. En tant que reed, nous devrions faire quelques étapes dans le gestionnaire de paquets pour créer SP.update-base de données ne fonctionne pas dans le code d'abord
1 - permettre la migration
2- add migration myClass
3- update-base de données
et Myclass(new created)
j'écris mon code SP dans la méthode UP() pour créer SP. fonctionne bien !! Mais quand je change de SP et que j'exécute à nouveau update-database, ça ne marche pas et j'ai besoin de faire une autre commande d'add-migration pour créer une nouvelle classe MYclass2. Est-ce correct? Je veux dire chaque fois que je devrais écrire une migration supplémentaire?
c'est mycode
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");
}
quand je lance la mise à jour base de données à nouveau le résultat est "No pending explicit migration"
même si je change la requête SQL pour « procédure Alter .... » ça ne fonctionne pas, aucun changement ne se produit. grâce
ÉDITÉE
considèrent ce scénario, je veux changer mon nom de SP (juste un exemple) donc je dois changer la requête pour « procédure magasin Alter tespSP2 ... » ou tout autre changement, devrais-je réexécuter la migration supplémentaire? ou update-database est supposé le faire?
Différentes techniques discutées [ici] (https://stackoverflow.com/questions/7667630/can-you-create-sql-views-stored-procedure-using-entity-framework-4-1-code- sapins). –