Я пытаюсь сделать копию объекта в ef-core 2.0. Я использую запрос, который извлекает множество объектов с помощью Include, а затем я использую AsNoTracking, чтобы сообщить ef, что это совершенно новый объект.
Я использую настройки по умолчанию, и я разрешаю базе данных генерировать идентификаторы при вставке. Но когда я использую запрос AsNoTracking, я все равно получаю идентификатор исходного объекта, который вызывает исключение в SaveChanges.
SqlException: Cannot insert explicit value for identity column in table 'Plans' when IDENTITY_INSERT is set to OFF.
На самом деле я не хочу менять этот параметр, и если я прохожу по объектам и меняю Id на 0, он работает. Есть ли способ справиться с этой проблемой, не обходя все объекты?
Есть ли лучший способ создать копию?
Как комментирует Иван выше, лучшего ответа нет, поэтому проверьте эту ссылку, чтобы получить лучший ответ. В моем случае я получаю объект и иерархию так же, как и раньше, затем просматриваю объекты и устанавливаю PK на 0.
Подобно stackoverflow.com/questions/49378462/…. И нет лучшего способа AFAIK.