在 Code-First 的复合主键中包含外键 Entity Framework
Include foreign key in composite primary key in Code-First Entity Framework
我有一个名为 Member
的实体,我想为其设置 MemberId
和 GroupId
的主键。在这种情况下,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; }
}
这是来自 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; }
}
我有一个名为 Member
的实体,我想为其设置 MemberId
和 GroupId
的主键。在这种情况下,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; }
}
这是来自 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; }
}