【问题标题】:EF4: Define multiple foreign keysEF4:定义多个外键
【发布时间】:2012-05-04 15:11:04
【问题描述】:
所以我有一张这样的桌子
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 都是 people
的外键
如何使用 EF4 Code First 对此进行建模?
【问题讨论】:
标签:
c#
.net
entity-framework-4
ef-code-first
【解决方案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 将按照约定检测两个一对多关系。