質問: 次のことをすることの違いを私に説明してください: * EFコアを持つクラスを飾る関係やマッピングを定義する**OnModelCreating**内のコードを使用して、このような**DataAnnotations** VSとして属性? * **dotnet** ef migrationsを使用してMigrationクラスを作成すると、 "xyz" VSが**OnModelCreatingに**設定され**ます** 。 私はある種の「開発ワークフロー」を作ろうとしていますが、ドキュメントはそれほど明確ではありません。 私は、 1. 最初の "データベースコンテキスト"を作成する 2. 私のモデルを表す一連のクラスを作成する 3. **OnModelCreating**をオーバーライドして、各Modelオブジェクトのマッピング方法を指定する 4. 私が何かを変えて何度も、 `add migrations`と`ef update`を実行`add migrations` これはEntity Frameworkコアで動作する正しいフローですか?
回答: > DataAnnotations VSなどのEF Core属性を持つクラスを飾る。OnModelCreating内のコードを使用してリレーションシップとマッピングを定義します。 > > データ注釈は「インライン」ですが、エンティティをパーシスタンスロジックと組み合わせることができます。それは私の意見では、スイートスポットです。 `OnModelCreating`を使用すると、より強力で柔軟な「Fluent API」を使用できますが、永続ロジックをエンティティから切り離すことができます。時には、データアノテーションとFluent APIの両方を組み合わせて使用することもあります。 > dotnet ef migrationsを使用してMigrationクラスを作成すると、 "xyz" VSがOnModelCreatingに設定されます。 > > 私はこれを理解しているか分からない。マイグレーションの代替手段はありません。 EF(コードファースト)で作業する方法は次のとおりです。 1. 私は自分のエンティティを書き、それらにデータ注釈を追加する 2. 私は、移行を生成し、そこからSQLスクリプトを取得してから、移行コードを削除します 3. データベースに対して.SQLを実行します。 4. コードを実行する 5. エンティティの変更 6. 新しい移行.SQLを生成し、プロジェクトの一部として格納します。 基本的には、新しい/変更されたコードと互換性があるようにデータベースを更新する場合は、「マイグレーション」が必要です。 `OnModelCreating`は、エンティティのデータベースへのマッピング方法をEFに伝える必要がある場合に必要です。あなたは2つのことを混同すべきではありません。