Sql移行のメソッドを使用して、Entity Framework で SQL プロシージャを作成しています。たとえば、Up()私がやっている
Sql(@"SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.MyFunction
...
GO");
今、私の問題はGOs にあります。(ライブ サーバーで使用するために) 移行をスクリプト化できるようにしたい場合GOは、生成されたスクリプトに s が必要です。そうしないと機能しません。ただしUpdate-Database、オプションなしで実行する-script場合 (開発中に使用する場合)、GOs について混乱します。
私はいくつかの部分的な答えを見つけました:
SQL データベースを初期化するコードを追加
する方法 Bart による回答では、ステートメントを複数の呼び出しに分割するために呼び出すメソッドが提供されていSqlます。これに関する問題は、オプションで実行すると生成されたスクリプトに影響すること-scriptです。そのため、正方形 1 に戻ります。
MigratorScriptingDecorator によって生成された SQL スクリプトをオーバーライドするにはどうすればよいですか。
したがって、私の質問は次のとおりです。オプションを使用して移行を実行しているかどうかを知る方法-script、または移行で SQL プロシージャをスクリプト化するより良い方法はありますか?