EFは私にとって親切ではありません。ナビゲーションプロパティの利便性を保ちながら、別々の主キーを持つ1対1の関係を作成する必要があります。しかし、私が何を試みても、EFはナビゲーションプロパティを削除しなければエラーになります。エンティティフレームワーク - 1対1の関係でNav Propsを使用してプライマリキーを分離
ここに問題の完全な図があります。ご覧のように、私は主キーをマージすることはできません。そして、関係は常に1-1であるため、私は1 .. *の関係をシミュレートしたくありません。
public class SingleParent
{
public Guid ParentID { get; set; }
public virtual OnlyChild Child { get; set; }
}
public class OnlyChild
{
public Guid ChildID { get; set; }
public virtual SingleParent Parent { get; set; }
}
// Parent and Child cannot share a primary key because a pediatrician only treats children.
public class Pediatrician
{
public Guid PediatricianID { get; set; }
public virtual List<OnlyChild> Patients;
}
どのように私は、ナビゲーションプロパティは、そのParent.Child < ==>などChild.Parentを得ることができますか?残りのコードと一貫性を持たせるため、Data Annotationsでこれを行うことをお勧めします。どんな知恵でも大歓迎です!
明確にするために、小児科のクラスは、私がSingleParentとOnlyChildのためにPKをマージできない理由を明確にするためにのみ存在します。親の<-->子ナビゲーションプロパティを有効にすることだけに興味があるので、無視してもかまいません。 –