我有以下对象:删除了大多数属性。
public class WorkQueue : IEntity
{
public WorkQueue()
{
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public virtual ICollection<Action> Actions { get; set; }
public virtual ICollection<Role> AllowableRoles { get; set; }
}
public class Role: IEntity
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public virtual ICollection<Action> Actions { get; set; }
public virtual ICollection<WorkQueue> AllowedWorkQueues { get; set; }
}
public class Action: IEntity
{
public Action()
{
Roles = new HashSet<Role>();
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public string Name { get; set; }
public virtual Guid WorkQueue_Id { get; set; }
public virtual WorkQueue WorkQueue { get; set; }
public virtual ICollection<Role> Roles { get; set; }
}
AllowableRoles
是Role
的{{1}}集合的每个Action
中包含的Actions
个对象的组合列表。
当我遍历WorkQueue
并将每个Role的AllowableRoles
设置为EntityState
时,在创建Unchanged
对象时,仍然会在Roles表中插入重复的记录。
为什么会这样?
也请参阅我以前的文章,以获取更详细的信息,该信息可以在here
中找到