简体   繁体   中英

How to Add existing entity as a new Entity with Entity Framework

I want to create a copy my object in my DB with using Entity Framework

first I got my "Book" from DB

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

then, I tried to add this object as a new object

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

Also I trid to initilize EntityKey of Book it didnt work

Is there any way doing this without creating new Book and copy properties from old one?

Thanks

You need to fetch the entity, change the EntityState to Added in the ObjectStateManager and call SaveChanges :

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

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

entity1.SaveChanges();

This will copy your 'book'.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM