Сделайте копию с ядром AsNoTracking - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь сделать копию объекта в ef-core 2.0. Я использую запрос, который извлекает много объектов с помощью «Включить» и «Затем», затем я использую AsNoTracking, чтобы сказать, что это совершенно новый объект.

Я использую настройки по умолчанию, и я разрешаю базе данных генерировать идентификаторы при вставке. Но когда я использую AsNoTracking-запрос, я все равно получаю идентификатор исходного объекта, который дает мне исключение для SaveChanges.

SqlException: Cannot insert explicit value for identity column in table 'Plans' when IDENTITY_INSERT is set to OFF.

На самом деле я не хочу менять эту настройку, и если я пересекаю объекты и меняю Id на 0, это работает. Есть ли способ решить эту проблему, не обходя все объекты?

Есть ли лучший способ сделать копию?

1 Ответ

0 голосов
/ 04 мая 2018

Поскольку Иван комментирует выше, нет лучшего ответа, чем этот, так что проверьте эту ссылку для лучшего ответа. В моем случае я получаю объект и иерархию так же, как и раньше, затем обхожу объекты и устанавливаю PK равным 0.

Репликация всей строки в ядре Entity Framework

...