2010-07-23 20 views
5

Tôi muốn tạo ra một bản sao đối tượng của tôi trong DB của tôi bằng cách sử dụng Entity FrameworkLàm thế nào để Thêm thực thể tồn tại như một thực thể mới với Entity Framework

đầu tiên tôi nhận tôi "Sách" từ DB

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

sau đó, tôi đã cố gắng để thêm đối tượng này như một đối tượng mới

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

Ngoài ra tôi TrID để initilize EntityKey của Sách nó làm việc

Có cách nào thực hiện điều này mà không tạo Sách mới và sao chép các thuộc tính từ cũ?

Cảm ơn

Trả lời

6

Bạn cần phải lấy thực thể, thay đổi EntityState để Added trong ObjectStateManager và gọi SaveChanges:

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

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

entity1.SaveChanges(); 

này sẽ sao chép 'cuốn sách' của bạn.

Các vấn đề liên quan