2010-07-23 6 views
5

Je veux créer une copie de mon objet dans mon DB avec l'aide d'Entity FrameworkComment ajouter entité existante comme une nouvelle entité avec Entity Framework

premier j'ai obtenu mon « livre » de DB

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

puis, j'ai essayé d'ajouter cet objet comme un nouvel objet

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

aussi je Trid à initilize EntityKey du livre il n'a pas fonctionné

Y a-t-il un moyen de le faire sans créer de nouvelles propriétés Livre et Copier à partir de l'ancienne?

Merci

Répondre

6

Vous devez chercher l'entité, changer le EntityState à Added dans le ObjectStateManager et appelez SaveChanges:

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

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

entity1.SaveChanges(); 

Cela copiera votre 'livre'.

Questions connexes