Итак, я получаю следующее сообщение об ошибке:
Не удается отследить экземпляр типа сущности 'X', поскольку уже отслеживается другой экземпляр с таким же значением ключа для {...}
Это происходит, когда мы объединяем коллекцию подпунктов.В EF 6 следующий шаблон будет работать нормально:
dbContext.Items.RemoveRange(owner.Items);
owner.Items = newItems.Select(i => dbContext.Items.Add(new Item(i)).ToList();
В EF Core это не работает для элементов с составным ключом.Я предполагаю, что удаленные элементы помечены для удаления, но все еще отслеживаются.Поэтому, когда новые с совпадающим составным ключом добавляются , SaveChanges () завершается ошибкой, поскольку отслеживаются 2 объекта с одинаковым идентификатором.
Итак, можно ли предположить, что приведенный выше шаблон долженбольше не используется и вместо этого правильно объединяет элементы, например, используя полное внешнее объединение?
Или есть ли способ заставить его работать как в EF 6?