質問: new ParentEntity() })` 、すなわち`ParentEntity-ChildEntity`リレーションはOne-To-ZeroOrOneです。つまり、子の親が必要で、親の子はオプションです。 両端が必要な「実際の」一対一の関係を設定する方法はありますか? おそらく、これはデータベース内で実施することはできません。しかし、それはEFコアによって強制できますか? (それはEF6によって実施することができます)
回答: > 両端が必要な「実際の」一対一の関係を設定する方法はありますか? > > 執筆時点(EF Core 2.1.2)では、答えは(残念ながら)否定的です。 ドキュメントの「 必須でオプションの関係」セクションには、次のように書かれています。 > Fluent APIを使用して、リレーションシップが必須かオプションかを設定できます。最終的には、外部キープロパティが必須かオプションかを制御します。 > > 閉じた問題もあります。EF Core 2:一対一の要求が強制されないこと(ナビゲーションはもはや必要ありません)#9152同じ質問をし、応答の一部は次のとおりです。 > 関係が「必須」となった場合、それは、関連する主体がなければ従属エンティティが存在できないことを意味する。これは私がFKをnullにすることができないようにしています - つまり、FKの値はいくつかの主体を参照する必要があります。 > > しかし、それは依存関係のない主体について何も言わない。これは、部分的にロードされたグラフで作業するときには、実際には制限する方法がないため、常に可能です。 (これは古いスタックと同じでしたが、州の管理者が、事実上起こっている事態をほとんど恣意的に阻止する状況がいくつかありましたが)グラフの部分的な読み込みを制限する集約に適用されるセマンティクスが強ければ、将来の制限ですが、まだ完了していません。 > >