设置EntityState =不变一次,不会跟踪所有相同的对象

时间:2019-03-07 18:51:19

标签: c# sql .net entity-framework entity-framework-6

我有以下对象:删除了大多数属性。

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; }
}

AllowableRolesRole的{​​{1}}集合的每个Action中包含的Actions个对象的组合列表。

当我遍历WorkQueue并将每个Role的AllowableRoles设置为EntityState时,在创建Unchanged对象时,仍然会在Roles表中插入重复的记录。

为什么会这样?

也请参阅我以前的文章,以获取更详细的信息,该信息可以在here

中找到

0 个答案:

没有答案