EntityFramework 6使用共享密钥进行一对一映射

时间:2015-09-24 12:29:53

标签: entity-framework entity-framework-6

作为一个例子,我跟随现有的表,我无法改变 联系人 - [ID,姓名,年龄](主键:ID)

不,我想使用以下扩展表扩展功能

详细信息 - [ID,地址,电话](主键:ID,外键:ID)

请注意,Details.Id是主键和外键(引用Contacts.Id)

我的域名模型是

Contact
{
 public int Id {get;set;}
 public string Name {get;set;}
 public int Age {get;set;}
 public Details Details {get;set;}
}

Details
{
 public int Id {get;set;}
 public string Address {get;set;}
 public string Phone {get;set;}
}

如何在实体框架6中为此编写映射

1 个答案:

答案 0 :(得分:1)

您可以这样使用composite key

public class Details
{
    [Key, ForeignKey("Contact")]
    public int Id { get; set; }
    public string Address { get; set; }
    public string Phone { get; set; }
    public Contact Contact { get; set; }
}

public class Contact
{

    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public Details Details { get; set; } 
}

现在,详细信息的ID是主键和外键