0

移行を使用して、親テーブルを既存の子テーブルに追加しようとしています。たとえば。現在テーブルがありますが、1対多の関係を持つテーブルUserを追加したいと思います。DepartmentDepartment has many User

私の質問は、自動更新で、FKを追加する前に親テーブルをシードして、すべての子をこのデフォルトのシードに更新できるようにすることはできますDepartmentか?自動更新でこれを実行できない場合、コードでこれを実行するにはどうすればよいですか?

私が現在行ったこと:FKをnull許容にし、親を作成してシードし、すべての子UserFKを親に更新します。しかし、次のエラーがスローされるため、FKをnull許容に変更することはできません。Automatic migration was not applied because it would result in data loss.

4

1 に答える 1

1

null許容からnull不可に切り替えると、データの損失と見なされます。これは、移行後、どの行(存在する場合)がnullであったかを判断する方法がないためです。これで問題がない場合は、-Forceフラグを指定してUpdate-Databaseを呼び出すことができます。

もう1つのオプションは、次のようなコードベースの移行を追加することです。

  1. 部門テーブルを追加します
  2. デフォルトの部門を挿入する
  3. 挿入された部門のデフォルト値を使用して、必要なFK列をユーザーに追加します
于 2012-08-21T18:10:25.500 に答える