3

Entity Framework 5 Code First 移行で、任意の種類のプログラムによるデータ変換を行うことは可能ですか?

クエリを実行するためのSql () メソッドがありますが、戻り値の型が void であり、実行したクエリの結果を取得する方法がわかりません。

Ingredientと1対多の関係を持つテーブルRecipeがあります。さまざまな理由から、代わりにこれを Ingredients JSON 文字列プロパティに変換したいと考えています。私が考えることができる唯一のアプローチは、次のようなものです:

  • 新しい列IngredientsJsonを作成する
  • 各レシピについて、その材料をクエリし、プログラムで JSON 文字列を作成して、新しい列に挿入します。
  • 古いテーブルIngredientを削除します。
4

1 に答える 1

1

必要なものには db 'initializer' を使用する必要があります-および/または一種の 'Seed' (EF フローに注入する場所) を使用する必要があります。

> この投稿を、カスタマイズされた < initializer -で見てみましょう。これは、Db Create... と Migrate の両方を実行します。これは切り取りと貼り付けの解決策ではありませんが、ほとんどの場合は機能します (問題をすばやく解決しただけで、少し調整する必要があります。以下にいくつかの修正があります)。

MigrateDatabaseToLatestVersion移行部分のみを適用します-そして、seed公開する必要があります-またはその部分を手動でラップします(主なポイントは、さまざまな状況で行われる「チェック」にあります-つまり、いつ移行に「関与」するか-またはシード)。

移行を最初に行う必要があり、シードを除いて、データベースの「作成」のようなものはあまり意味がありません。

Seedそこにデータベース処理を配置するためにオーバーライド(作成)しますDbContext-公開されています-必要に応じて呼び出すこともできSqlQueryます。


mysql データベースを作成および移行するための初期化子を作成する方法は?

于 2013-04-08T00:59:18.033 に答える