Entity Frameworkを使用してデータベースを初期化する際に、未処理のSQLを実行する必要があります。 SQLは、列の照合順序を設定するために必要とされ、文脈が与えられたときのコードは、このコードを置くために質問があるこのEntity Frameworkの移行でRaw SQLを実行
context.Database.ExecuteSqlCommand("ALTER TABLE my_table ALTER COLUMN my_column nvarchar(200) COLLATE Latin1_General_CS_AS");
ようになりますか?私がのときにメソッドをConfiguration.cs
に入れたら、それはうまくいくが、後でマイグレーションとrebaselineを削除するとSQLを実行する知識が失われる。理想的には、このSQL実行を、EFが移行を有効にしてデータベースを更新するたびに実行する別のクラスに抽象化したいと考えています。
:これは、呼び出し元のアプリケーションの責任ではありません - 私は、エンティティフレームワークが作成したときに、それは照合を設定したいですデータベース。
EF初期/ベースライン設定の一部として生のSQLを実行するにはどうすればよいのでしょうか。これは、今後何が行われたのか分からないようにするためです。デフォルトConfiguration.cs
)
確かにこの移行は唯一の方法ですか?初めてデータベースを構築するときは、マイグレーションをクリアして新鮮なものにする必要があります。そうしないと、モデルが開発されたときにマイナスのマイグレーションが発生します。私はこれらのSQL文を毎回追加することを忘れてはならないでしょう。 –
もう一度、@ JamesBの解決策を見つけましたか? – Dustin