【问题标题】: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

基本上一个人接电话,那个人就是接听者,接电话的人需要和另一个人通话,可以是同一个人接听,也可以是其他人,所以我们有这个桌子设计,IdReceptorIdRequired 都是 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 将按照约定检测两个一对多关系。

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多