2017-03-06 23 views
2

あなたは私に次を持つとの違いを説明してくださいすることができますEntity FrameworkのコアOnModelCreating、正しい開発ワークフロー

  • 、このような内部のコードを使用してDataAnnotations VSとして属性EFコアを持つクラスを飾りますOnModelCreatingリレーションシップとマッピングを定義しますか?
  • dotnet ef migrationを使用してMigrationクラスを作成すると、 "xyz" VSが追加されます。OnModelCreating

私はある種の「開発ワークフロー」を作ろうとしていますが、文書ではそれほど明確ではありません。

私は私がすべきことが判明:

  1. は、各モデルオブジェクトのマッピング戦略を指定するには、私のモデル
  2. オーバーライドOnModelCreatingを表すクラスのセットを作成して、あなたの最初の「データベースコンテキスト」
  3. を作成します。
  4. 私は何か
01を変更するよう add migrationsef update何度でも実行

これは、Entity Frameworkコアで正しく動作するフローですか?

+1

'dotnet migrations add MigrationName'とデータベースへの移行を適用する場合' dotnet ef database update' –

+0

@ J.Doeこれははっきりしていますが、EF Coreを使用する正しい作業フローと、代わりにOnModelCreatingを使用する必要がある場合マイグレーションクラスの – Raffaeu

答えて

3

EFコアを持つクラスを飾る関係や マッピングを定義するOnModelCreating内のコードを使用して、このようなDataAnnotations VS として属性?

データ注釈は「インライン」ですが、パーシスタンスロジックを持つエンティティを混在させます。それは私の意見では、スイートスポットです。 OnModelCreatingを使用すると、より強力で柔軟な「Fluent API」を使用できますが、永続ロジックをエンティティから切り離すことができます。時には、データアノテーションとFluent APIの両方を組み合わせて使用​​することもあります。 DOTNET EFの移行を使用して、マイグレーションクラスを作成

はOnModelCreatingにそれを設定する VS "XYZ" を追加しますか?

私はこれをよく理解しています。マイグレーションの代替手段はありません。

私はEF(コードファースト)で動作する方法は、次のとおりです。

  1. 私はその後、削除、私は、マイグレーションを生成し、それからSQLスクリプトを取得し、私の実体を記述し、それらに
  2. をデータ注釈を追加移行コード
  3. エンティティが
  4. が新しい移行を生成変更するコードを実行してデータベース
  5. に対して.SQLを実行します。SQLを使用してプロジェクトの一部として保存する

新しい/変更されたコードと互換性があるようにデータベースを更新するには、基本的に「マイグレーション」が必要です。

OnModelCreatingエンティティがどのようにデータベースにマップされるかをEFに伝える必要がある場合は、必要です。あなたは2つのことを混同すべきではありません。

+0

実際にはこれは私がマッピングのためにクラスごとのモデルを使用する前に、今はすべてOnModelCreatingに入っているので、どのように動作するのかを理解するために必要な答えです – Raffaeu

+0

初めてコードを実行すると、移行のないdbテーブル –

関連する問題