2012-05-04 56 views
0

所以我有一个表的人是这样EF4:定义多个外键

Id Name 
1  John 
2  Mike 
3  Sophie 

而且我有一个表调用

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

基本上有人接听了一个电话,那人是受体,一种在手机上,需要与其他人交谈,也可以是谁回答是同一人,或者其他,所以我们有这个表的设计,IdReceptorIdRequired都是外键

我如何模拟这种使用EF4代码优先?

回答

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收藏与注释或流畅API添加额外的映射,也可以使Person导航属性virtual如果你想偷懒加载。但上面的代码是一个简单的解决方案。 EF将按照惯例检测两个一对多关系。