2010-07-23 142 views
5

我想在我的數據庫創建一個副本我的對象使用實體框架如何添加現有的實體與實體框架

首先,我得到了我的「書」,從DB

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

一個新的實體那麼,我想對這個對象添加爲新的對象

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

而且我TRID,用來初始化圖書 的的EntityKey它沒有工作

有沒有辦法做到這一點,而不是從舊的創建新的書籍和複製屬性?

感謝

回答

6

你需要獲取的實體,改變EntityStateAddedObjectStateManager並調用SaveChanges

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

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

entity1.SaveChanges(); 

這會複製你的 '書'。