Как добавить существующую сущность как новую сущность с Entity Framework - PullRequest
5 голосов
/ 23 июля 2010

Я хочу создать копию моего объекта в моей БД с использованием Entity Framework

Сначала я получил «Книгу» из БД

var entity1 = new testEntities();
var book= entity1.Books.First();
entity1.Dispose();

Затем я попытался добавить этот объект как новый объект

var entity2 = new testEntities();
book.Id = 0;
entity2.SaveChanges();
entity2.Dispose();

Также я попытался инициализировать EntityKey of Book это не сработало

Есть ли способ сделать это без создания новой книги и копирования свойств из старой?

Спасибо

1 Ответ

6 голосов
/ 23 июля 2010

Вам нужно выбрать объект, изменить EntityState на Added в ObjectStateManager и вызвать SaveChanges:

var entity1 = new testEntities();
var book = entity1.Books.First();

ObjectStateEntry bookEntry = entity1.ObjectStateManager.GetObjectStateEntry(book);
bookEntry.ChangeState(EntityState.Added);

entity1.SaveChanges();

Это скопирует вашу «книгу».

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