10

データベースとのリレーションを持つ新しいテーブルを追加して実行すると、テーブルとそのリレーションを追加するメソッドAdd-Migrationでコードが生成されることがわかります。Upただし、OnModelCreatingメソッドで流暢な API を使用してリレーションを定義することを好みます。これら 2 つのメソッドはどのように相互作用しますか? Upたとえば、関係を定義するメソッドからコードを削除できますか?

4

1 に答える 1

16

それぞれの目的は完全に異なります。

  • OnModelCreatingモデルのインライン fluent-API 定義に使用されます。これらの定義は、デフォルトの規則、データ注釈、構成クラスとともに、モデルの完全な定義を形成します。
  • 明示的な移行では、データベースを現在のモデルで必要な形式に移行するためにデータベースに対して行う必要があることを定義します

さて、二人の関係は?移行には、移行コード (UpおよびDownメソッド) を生成するために使用される 2 つの入力があります。__MigrationHistory1 つの入力は、データベースのテーブルに格納された最後の移行レコードです。このレコードには、データベースを表すシリアル化されたモデルが含まれています。最初の移行はそれなしで機能する必要があるため、この入力はオプションです。2 番目の入力は必須です。現在のアセンブリでコードを実行することによって取得されるのは現在のモデルです =>現在のモデルを取得し、データベースから取得したモデルと比較するためにAdd-Migration実行されます。OnModelCreating比較の結果は、明示的な移行の内容Upとメソッドです。Down

于 2012-06-24T20:12:04.593 に答える