親子関係のある2つのオブジェクトで複合主キーを使用しようとしています。新しい移行を作成しようとすると、エラーが発生します。
タイプ'Models.UserProjectRole'の複合主キーの順序を判別できません。ColumnAttributeまたはHasKeyメソッドを使用して、複合主キーの順序を指定します。
エラーが示唆するように、私は注釈を追加Column (Order = X)
しますが、キー注釈のあるフィールドを1つだけ残さない限り、エラーはまだそこにあり、消えません。これがつまずく私のオブジェクトです:
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; }
}
VisualStudio2012でEF4.3.1を使用しています
私はしばらくの間これに頭を悩ませてきました、そしてすべてのフォーラムとSOの答えは私がすでに持っている列順序注釈を追加することを提案します。 私は明らかな何かが欠けていますか?
ここまで読んでいただきありがとうございます-)