0

私は2つのエンティティを持っています:

public class Person {
    [Key]
    public string Name {get;set;}

    public virtual Phone homePhone {get;set;} 
    public virtual Phone cellPhone {get;set;}
}

public class Phone {
    [Key]
    public int PhoneNumber {get;set;}

    public virtual Person {get;set;} 
}

1 人が 0 または 1 つの homePhone と 0 または 1 つの cellPhone を持つことができます。(私はこれを1対1またはゼロの関係と考えています)。

CodeFirst API を使用して Entity Framework でこれをモデル化する方法。Person を Phone の主キーと外部キーの両方として設定することで、Person と Phone の間の 1 対 0/1 の関係をモデル化できますが、homePhone と cellPhone の両方が同じ person エンティティを持つにはどうすればよいでしょうか? 逆に言えば、各 Person が 2 つの Phone 外部キーを持つ Phone と Person の間に 1 対 0/1 の関係があると言えますか?

4

2 に答える 2

0

あなたはこのようなことを考える必要があります:

public class Person {
    [Key]
    public string Name {get;set;}

    Public PersonPhone HomePhone{get; set;}

    Public PersonPhone CellPhone{get; set;}        
}   

public class Phone {
    [Key]
    public int PhoneNumber {get;set;}
}

public class PersonPhone {
    [Key]
    public virtual Phone Phone {get;set;}

    [Key]
    public PhoneType PhoneType {get;set;}
}

public enum PhoneType {
    HomePhone,
    CellPhone 
}
于 2013-01-22T05:33:51.487 に答える