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

问题描述 投票:5回答:1

我有一个名为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; }
}
c# entity-framework foreign-keys primary-key composite-primary-key
1个回答
7
投票

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

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; }
}
© www.soinside.com 2019 - 2024. All rights reserved.