私はデータベースを作成し、最初のマイグレーションを行いました(単なるテーブルの追加)。今、SQLを作成してManagement Studioで実行することで、追加したストアドプロシージャをいくつか追加します。しかし、これらのストアドプロシージャを可能な限り移行に含めて保存して、それらを保存し、それらに対してUpまたはDownメソッドを実行できるようにしたいと思います。これが可能なのか、そうであればどのような構文を使用する必要がありますか?または、Management Studioを使用して追加/編集/削除するだけですか?コードの最初の移行とストアドプロシージャ
18
A
答えて
23
私は、現在のマイグレーションクラスでは...そうのよう
これをやった -
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 ...
";
}
7
私はEF6を使用していますが、DbMigration
クラスは、ストアドプロシージャを削除/ /アルターを作成するためのメソッドを提供し
新しいストアドプロシージャを作成します
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"); } }
変更ストアドプロシージャ
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. Entity Frameworkコードの最初の移行とデータ移行
- 2. 使用ストアドプロシージャ(最初のコード)
- 3. エンティティフレームワークのコード最初の移行ファイルソースコントロール
- 4. EFコードの最初の移行と外部キー制約
- 5. エンティティフレームワークコードの最初の移行とFirebird
- 6. ストアドプロシージャ関数のインポートとエンティティフレームワークのコード最初
- 7. コードの最初の移行:オフラインPC用のAlpha 3のインストール
- 8. Sql Anywhere 17 efコードの最初の移行のサポート
- 9. Entity Frameworkコードの最初の移行の例外
- 10. データ移行コード最初の表の順序はアルファベット順です
- 11. Entity Frameworkコードを使用したDVCSプロジェクトの最初の移行
- 12. EFコードの最初の移行に失敗しました。
- 13. mediumtext/longtext - Entity Frameworkコードの最初の移行
- 14. Entity Frameworkコードの最初の移行 - 前回の移行を対象とすることができます
- 15. C#コード - 最初の移行、上/下ですか?
- 16. 1つのストアドプロシージャを別のストアドプロシージャで実行すると、最初のストアドプロシージャが実行されます
- 17. 私の最初のストアドプロシージャが
- 18. コードの最初の移行で異なるレイヤーにPOCOコードを複製
- 19. プロダクションデータベースへの最初の移行
- 20. コードの最初の移行は実行されていません
- 21. 用語「有効-移行が」MVCコード最初
- 22. コードでのストアドプロシージャ最初に異なるテーブルで
- 23. EFコード最初のオブジェクトコンテキストExecuteFunctionでストアドプロシージャを検索する
- 24. コードの最初の行の前のセグメンテーションフォールト
- 25. 方法:SQL Azure DBのコードの最初の移行、TFSの展開
- 26. コードの最初の移行 - データベースの更新エラー - ネットワーク関連のインスタンス?
- 27. EF4.3コードの最初の移行で保留中の移行が無視される
- 28. MySQLは最初の行のみをコード
- 29. は、私はデータベースの移行で最初のEF6コードで働いていると私は初心者だテーブルEF6
- 30. 複数のデータベース/ DbContextを使用したEFコードの最初の移行
可能デュープhttp://stackoverflow.com/questions/7667630/can-you-create-sql-views-stored-procedure-using-entity- framework-4-1-code-firs –