Установка EntityState = неизменен один раз, не отслеживает для всех одинаковых объектов - PullRequest
0 голосов
/ 07 марта 2019

У меня есть следующие объекты: Большинство удаленных свойств.

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 объектов, содержащихся в каждом Action коллекции Actions WorkQueue.

Когда я перебираю AllowableRoles и устанавливаю для каждого из EntityState ролей значение Unchanged, я все равно получаю дубликат записи, вставляемой в таблицу ролей при создании объекта WorkQueue.

Почему это происходит?

Пожалуйста, обратитесь к моему предыдущему сообщению за более подробным сообщением, которое можно найти здесь

...