2010-07-23 15 views
5

Quiero crear una copia de mi objetivo en mi base de datos con el uso de Entity FrameworkCómo agregar entidad existente como una nueva entidad con Entity Framework

primero que llamó mi "libro" de DB

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

a continuación, traté de añadir este objeto como un nuevo objeto

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

también me TrID a initilize EntityKey del libro no trabajó

¿Hay alguna manera de hacerlo sin crear nuevas propiedades de libro y copia desde la anterior?

Gracias

Respuesta

6

tendrá que obtener la entidad, cambiar el EntityState a Added en el ObjectStateManager y llame SaveChanges:

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

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

entity1.SaveChanges(); 

Esto copiará su 'libro'.

Cuestiones relacionadas