Как обновить Entity, но вставить новую строку в SaveChanges? - PullRequest
0 голосов
/ 21 июля 2010

У меня есть Entity1 со свойствами

Entity1.id= 1;
Entity1.a = 10;
Entity1.b = 123;
Entity1.c = 231;

Я не хочу менять свойства, но вставляю новую строку в context.SaveChanges (), чтобы не обновлять существующий идентификатор. Я попытался установить Entity1.entityKey = null, но это не удалось.

Есть идеи?

Спасибо.

1 Ответ

2 голосов
/ 21 июля 2010

Установите EntityState на Added в ObjectStateManager:

var Entity1 = context.YourEntities.Where(e => e.Id == 1).FirstOrDefault();

ObjectStateEntry osmEntry = context.ObjectStateManager.GetObjectStateEntry(Entity1);
osmEntry.ChangeState(EntityState.Added);

context.SaveChanges();

То есть, если ваша сущность уже привязана к контексту (например, если вы извлекли ее раньше).

Это будет «копировать» сущность с Id = 1, если вы не внесете какие-либо изменения в свойства.

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