EF4:定义多个外键

时间:2012-05-04 15:11:04

标签: c# .net entity-framework-4 ef-code-first

所以我有一个像这样的表人

Id    Name
1     John
2     Mike
3     Sophie

我有一张表呼叫

Id    IdReceptor    IdRequired
1     1             2
2     1             1
3     2             3
4     3             1

基本上一个人接听电话,那个人就是受体,手机上的那个人需要和另一个人说话,它可能是同一个人回答,或者其他人,所以我们有这个表设计, IdReceptor IdRequired 都是人的外键

如何使用EF4 Code First建模?

1 个答案:

答案 0 :(得分:1)

例如:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Call
{
    public int Id { get; set; }

    [ForeignKey("Receptor")]
    public int IdReceptor { get; set; }
    [ForeignKey("Required")]
    public int IdRequired { get; set; }

    public Person Receptor { get; set; }
    public Person Required { get; set; }
}

如果需要,您可以在Person中引入集合,并使用注释或Fluent API添加其他映射,或者如果您想延迟加载,可以创建Person导航属性virtual。但上面的代码是一个简单的解决方案。 EF将按惯例检测两个一对多关系。