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

mig*_*lla 6 c# entity-framework foreign-keys primary-key composite-primary-key

我有一个名为一个实体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; }
}
Run Code Online (Sandbox Code Playgroud)

Sze*_*eki 8

这是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; }
}
Run Code Online (Sandbox Code Playgroud)