我想使用Entity Framework
在我的数据库中创建一个副本首先我从DB获得了“Book”
var entity1 = new testEntities();
var book= entity1.Books.First();
entity1.Dispose();
然后,我尝试将此对象添加为新对象
var entity2 = new testEntities();
book.Id = 0;
entity2.SaveChanges();
entity2.Dispose();
我还试图启动Book的EntityKey 它没有工作
有没有办法在不创建旧书籍和复制属性的情况下这样做?
由于
答案 0 :(得分:6)
您需要获取实体,将EntityState
更改为Added
中的ObjectStateManager
并致电SaveChanges
:
var entity1 = new testEntities();
var book = entity1.Books.First();
ObjectStateEntry bookEntry = entity1.ObjectStateManager.GetObjectStateEntry(book);
bookEntry.ChangeState(EntityState.Added);
entity1.SaveChanges();
这将复制您的“图书”。