2017-03-13 7 views
2

このプロジェクトでは、EFコードの最初のアプローチを使用しています。c#コード最初に格納されたprocバージョン管理によるDBの移行

現在、我々は、これに伴う問題は、私はストアドプロシージャを更新するたびに、私は「myStroedProc_versionX」のような名前の大会で、新しいSQLファイルを作成する必要がある。この

var scripts = StoredProcedureMigrationHelper.GetSqlBatchFromEmbeddedResource("myStoredProc.sql"); 
     foreach (var script in scripts) 
     { 
      Sql(script); 
     } 

ようDbMigrationコードを生成します。どちらが機能しているのですが、バージョンの違いを示すなどのバージョン管理の利点を失います。

最初にコード内のバージョン管理でストアドプロシージャを更新する方法はありますか?

+0

これはprocsを作成するのと同じですか;#?私は、データベースの最初のモデル作成で、EFが複数のバージョンのprocを見つけられなかった場所も見てきました。 – Sean

答えて

1

EFデータベースを最初に使用し、SQL Serverデータツール(SSDT)を使用してデータベースをモデル化することが、より強固で柔軟な方法です。ソリューションにデータベースプロジェクトを作成することによって、dacpacを構築してSQL Serverインスタンスに適用して、スキーマを目的の状態に更新することができます。

1

免責事項:あなたはあなたがのためのSQLベースの移行を使用して切り替えることができReadyRollコア版に付属のVisual Studio 2017エンタープライズを、持っている場合、私はレッドゲートソフトウェアのプロダクトマネジャー、ReadyRoll

のメーカーですデータベースの展開これにより、EF CodeFirstを使用してモデリングを行うと同時に、ストアドプロシージャの配置をスキーマの変更と併せて含めることができます。記事はプログラマブルオブジェクトのみReadyRollのプロ版に含まれているReadyRoll、の機能を使用すること https://documentation.red-gate.com/display/RR1/Tutorial%3A+Entity+Framework+CodeFirst+migrations

注:

あなたはReadyRollドキュメントでこのアプローチについての詳細を読むことができます。代わりに、ストアドプロシージャをデプロイメント後のスクリプトとしてスクリプト化することもできます(これにより、各変更時ではなく、すべてのデプロイメントでスクリプトが実行されます)。