views:

56

answers:

1

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

+4  A: 

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'.

Yakimych