我正在尝试对具有父子关系的 2 个对象使用复合主键。每当我尝试创建新迁移时,都会出现错误:
无法确定类型“Models.UserProjectRole”的复合主键排序。使用 ColumnAttribute 或 HasKey 方法指定复合主键的顺序。
根据错误提示,我确实添加了注释Column (Order = X)
,但错误仍然存在并且不会消失,除非我只留下一个带有 Key 注释的字段。这是我绊倒的对象:
public class UserProjectRole
{
[Key, Column(Order = 0),DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserProjectRoleID { get; set; }
[Key, Column (Order = 1)]
public Guid ProjectID { get; set; }
[ForeignKey("ProjectID")]
public Project Project { get; set; }
public Guid AppUserGuid { get; set; }
// followed by a number of unrelated String fields.
}
这是项目类:
public class Project: Base
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ProjectID { get; set; }
public virtual ICollection<UserProjectRole> UserRoles { get; set; }
// followed by a number of unrelated String fields.
}
这是我的 DBContext 的一部分:
public class SiteContext : DbContext
{
public DbSet<Project> Projects { get; set; }
public DbSet<UserProjectRole> UserProjectRoles { get; set; }
}
我在使用 EF 4.3.1 的 VisualStudio 2012
一段时间以来,我一直在努力反对这一点,所有论坛和 SO 答案都建议添加我已经拥有的列顺序注释。 我错过了一些明显的东西吗???
谢谢你读到这里-)