Entity Frameworkに、特別な1対1の関係のために特定の方法でテーブルを作成させようとしています。
私がこのクラスのセットを持っているとしましょう:
public class Parent
{
public int ID { get; set; }
public string Title { get; set; }
public Child XYZ { get; set; }
}
public class Child
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
}
クラスのXYZ
プロパティは、Parent
のインスタンスに設定できます(MAY)Child
。EFに2つのクラスのそれぞれのテーブルを作成してもらいたいのですが、オブジェクトのテーブルにChild
は、オブジェクトとの関係を維持するために、理想的には「ParentID」という名前の外部キー列が必要ですParent
。
Child
Parentテーブルに「ChildID」列が必要ありません。また、クラスにIDまたはParentIDプロパティを追加したくありません。
現在、Child
オブジェクトのプロパティは親テーブルの列として作成されており、XYZプロパティがChild
クラスのインスタンスに設定されていない場合、つまりnullにできない場合は、例外が発生します。
DbModelBuilderとOnModelCreatingイベントでこれを実行しようとしています。IsOptionalメソッドは、単純な型でのみ機能します。
助言がありますか?これはEFでも可能ですか?