質問: EF Core Migrationを使用している場合、ツールはすべてのプロパティを取得せず、FK(ナビゲーションプロパティ)の「Id」と一部(すべてではない)のみを取得します。 "階層あたりのテーブル"も非常によく理解されているようです - 私が望んでいたディスクリミネータを設定していますが、マイグレーションファイル自体がモデルネームスペース(githubコードを参照)にあるプロパティを反映していません。 私のDbContextはここにあります: https : //github.com/aredfox/TheConference/blob/master/InfoBooth/TheConference.InfoBooth.Data/InfoBoothContext.csマイモデルクラスはこちら: https : //github.com/aredfox/TheConference/ツリー/マスター/ InfoBooth / TheConference.InfoBooth.Core / Model 生成された「初期移行」は、 ]で確認できます。そこでは、すべてのIdプロパティ(基本クラス`[Entity][1]`定義されています)が検出されていますが、他のどのプロパティも[モデルクラスのどれも検出されませんでした。 私は、移行を実行するためのコンソールアプリケーションを追加する方法を使用しました(そうでなければ動作しません - Julie LermanがEF Coreを使い始める際のヒントを参照してください)。したがって、移行を実行するときは次のようにします`dotnet ef --startup-project ../../TheConference.Infrastructure.ConsoleApp migrations add Initial`ます。 **EFが私に何をしたいかを知らせるために、 *注釈*や*modelBuilder、*または*EntityTypeConfigurationの*形式を*EFCoreで*使用する必要がありますか?** 。
回答: あなたのクラスプロパティはすべて次のようなものです ``` public string Title { get; } ``` すなわち、読み取り専用の自動プロパティ。 EFコアは、このようなプロパティをサポート(マップ)していません。それらをマッピングするには、プロパティセッターを用意する必要があります ``` public string Title { get; set; } ``` アクセスレベルは本当に重要ではありません。 `private` 、 `protected`または`internal`が機能します。唯一の要件はセッターを持つことです。 EFコアでは、マッピングプロパティとバッキングフィールドを使用することもできますが、流暢なAPI設定が必要なものはすべて、 `readonly`フィールドでバックアップされているため、自動プロパティのみを取得することはできません。