Обновить родительскую сущность изменить коллекцию дочерней сущности - PullRequest
0 голосов
/ 15 мая 2019

Я использую Entity Framework Core в приложении WPF.

У меня есть такая модель:

Parent_Entity
_ Id
_ Коллекция Child_Entity
_ Current_Child_Entity(не сопоставлено)

Current_Child_Entity является одним из коллекции.Например:

Коллекция дочерней сущности :
child1
child2

Current_Child_Entity :
child2

Когда я пытаюсь сохранить изменения, я делаю что-то вроде этого:

1) AddOrUpdate (Current_Child_Entity)
2) AddOrUpdate (Parent_Entity)

Метод AddOrUpdate (), который я использовалреализован следующим образом:

public void AddOrUpdate(T entity)
        {
            if (!Context.Set<T>().Any(obj => obj == entity))
            {
                Context.Set<T>().Add(entity);
            }
            else
            {
                Context.Entry(entity).State = EntityState.Modified;
                Update(entity);
            }
        }

Моя проблема, когда я делаю первое обновление (с Current_Child_Entity), все кажется хорошим.

Но когда я иду во второе обновление, где я сохраняю родительскую сущность, добавляет дублирование двух Child_Entity с одинаковым Id и одинаковыми свойствами в Collection of Child Entity.Например, если я обновил child2 в Collection of Child Entity, я получаю:
child1
child2
child2

Это происходит, когда я делаю это в AddOrUpdate ():

Context.Entry (entity) .State = EntityState.Modified;

Почему в этой инструкции делается дублирование дочернего объекта в коллекции?

Есть что-то, чего я не делаюпонимаете и не могли бы вы объяснить, что я делаю не так?

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...