Ho appena creato un database e fatto la mia prima migrazione (solo una semplice tabella aggiunta). Ora voglio aggiungere alcune stored procedure che ho appena aggiunto scrivendo lo sql e eseguendolo in Management Studio. Ma vorrei includere queste stored procedure se possibile in una migrazione in modo che vengano salvate e posso eseguire un metodo su o giù contro di loro. È possibile e in tal caso quale sintassi deve essere utilizzata? O dovrò semplicemente aggiungere/modificare/rimuovere usando Management Studio?Code First Migrations and Stored Procedure
risposta
Ho fatto questo in questo modo ...
Nella classe di migrazione corrente -
public partial class MyMigration : DbMigration
{
public override void Up()
{
... other table creation logic
// This command executes the SQL you have written
// to create the stored procedures
Sql(InstallScript);
// or, to alter stored procedures
Sql(AlterScript);
}
public override void Down()
{
... other table removal logic
// This command executes the SQL you have written
// to drop the stored procedures
Sql(UninstallScript);
// or, to rollback stored procedures
Sql(RollbackScript);
}
private const string InstallScript = @"
CREATE PROCEDURE [dbo].[MyProcedure]
... SP logic here ...
";
private const string UninstallScript = @"
DROP PROCEDURE [dbo].[MyProcedure];
";
// or for alters
private const string AlterScript = @"
ALTER PROCEDURE [dbo].[AnotherProcedure]
... Newer SP logic here ...
";
private const string RollbackScript = @"
ALTER PROCEDURE [dbo].[AnotherProcedure]
... Previous/Old SP logic here ...
";
}
Che dire se stai modificando la procedura perché è stata creata in una migrazione precedente e quindi devi andare giù? Non dovresti semplicemente GOCCARE la procedura che dovrebbe tornare al suo stato originale, che è come prima la procedura ... – Ryan
@Ryan aggiornato per mostrare più chiaramente un alter vs. crea/rilascia – NKeddie
Mi piace un approccio più specifico http://stackoverflow.com/a/27711523/344895 – Madman
Sto usando EF6 e la classe DbMigration
fornisce metodi per creare/Alter/Delete stored procedure
Creare una nuova stored procedure
public partial class MyFirstMigration : DbMigration { public override void Up() { // Create a new store procedure CreateStoredProcedure("dbo.DequeueMessages" // These are stored procedure parameters , c => new{ MessageCount = c.Int() }, // Here is the stored procedure body @" SET NOCOUNT ON; SELECT TOP (@MessageCount) * FROM dbo.MyTable; "); } public override void Down() { // Delete the stored procedure DropStoredProcedure("dbo.DequeueMessages"); } }
Modificare una procedura immagazzinata
public partial class MySecondMigration : DbMigration { public override void Up() { // Modify an existing stored procedure AlterStoredProcedure("dbo.DequeueMessages" // These are new stored procedure parameters , c => new{ MessageCount = c.Int(), StatusId = c.Int() }, // Here is the new stored procedure body @" SET NOCOUNT ON; SELECT TOP (@MessageCount) * FROM dbo.MyTable WHERE StatusId = @StatusId; "); } public override void Down() { // Rollback to the previous stored procedure // Modify an existing stored procedure AlterStoredProcedure("dbo.DequeueMessages" // These are old stored procedure parameters , c => new{ MessageCount = c.Int() }, // Here is the old stored procedure body @" SET NOCOUNT ON; SELECT TOP (@MessageCount) * FROM dbo.MyTable; "); } }
- 1. EF 6 code-first con stored procedure personalizzata
- 2. Posso usare Code First Migrations senza nomi di tabelle pluarate?
- 3. Genera script SQL completo da EF 5 Code First Migrations
- 4. EF6: ridenominazione dello spazio dei nomi utilizzando Code First Migrations
- 5. SQL Server stored procedure return code oddity
- 6. Entity Framework 4 Code-First pro and cons
- 7. Differenza tra stored procedure e stored procedure estese
- 8. Chiamare una stored procedure in una stored procedure in MySQL
- 9. Come chiamare una stored procedure da un'altra stored procedure?
- 10. Stored procedure vs nessuna stored procedure - Security Viewpoint
- 11. DocumentDB chiamata stored procedure da un'altra stored procedure o stessa
- 12. stored procedure con risultati condizionali
- 13. Modelli per stored procedure?
- 14. stored procedure con sqlAlchemy
- 15. Equivalente Stored procedure MongoDB
- 16. SQL Stored Procedure LIKE
- 17. Autorizzazioni stored procedure MySQL
- 18. stored procedure restituisce VarChar
- 19. Salvati rotto stored procedure
- 20. UNION condizionale in stored procedure
- 21. Espressioni regolari in stored procedure
- 22. Chiamata alla stored procedure VBA
- 23. Stato stored procedure molto lungo
- 24. stored procedure query di eliminazione
- 25. Trova stored procedure per nome
- 26. MySQL: IF in stored procedure
- 27. chiama stored procedure da solr
- 28. Stored procedure restituisce una stringa?
- 29. SQL Server - selezionare stored procedure
- 30. Chiamata stored procedure in codeigniter
possibile vittima http://stackoverflow.com/questions/7667630/can-you-create-sql-views-stored-procedure-using-entity- framework-4-1-code-firs –