首页 文章

在Code-First Entity Framework中包含复合主键中的外键

提问于
浏览
5

我有一个名为 Member 的实体,我想为其设置 MemberIdGroupId 的主键 . 在这种情况下, GroupId 是实体 Group 的主键 . 使用下面的代码,外键设置正确,但它不包含在主键的一部分中 . 如何添加外键列以生成复合主键?

public class Member
{
    [Key]
    public string MemberId { get; set; }

    public string MemberName { get; set; }

    public string GroupId { get; set; }

    [ForeignKey("GroupId")]
    public virtual Group Group { get; set; }
}

1 回答

  • 7

    这是MSDN的一个例子 . 只需在要包含在复合键中的所有属性上使用 [Key] 注释,并为这些列添加额外的 [Column(Order=x)] 属性 .

    public class Member
    {
        [Key]
        [Column(Order = 0)]
        public string MemberId { get; set; }
    
        [Key]
        [Column(Order = 1)]
        public string GroupId { get; set; }
    
        public string MemberName { get; set; }     
    
        [ForeignKey("GroupId")]
        public virtual Group Group { get; set; }
    }
    

相关问题