EF Core Нет отслеживания и добавления () или обновления () - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь заставить мой DbContext работать без отслеживания.

public class MyContext: DbContext
{
    public MyContext() 
    {
        ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
    }
    ...
}

Кроме того, после каждого добавления (..) или обновления (..) я удаляю отслеживание нового объекта:

_context.Users.Add(user);
await _context.SaveChangesAsync();
_context.Entry(user).State = EntityState.Detached;

Проблема возникает, если я добавляю (или обновляю) новую сущность, которая имеет ссылку на уже существующую сущность (имеется в виду, что она уже сохранена в базе данных).

Например:

var section = new Section();
_context.Sections.Add(section);
await _context.SaveChangesAsync();
_context.Entry(section).State = EntityState.Detached;

...

var user = new User
{
   Name = "Alex",
   Section = section
}

_context.Users.Add(user);
await _context.SaveChangesAsync();

Ошибка:

System.ArgumentException: 'Элемент с тем же ключом уже добавлен. Ключ: 1 '

Как я могу это исправить?

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