我想使用 Entity Framework 在我的数据库中创建一个我的对象副本
首先我从DB那里得到了我的“书”
var entity1 = new testEntities();
var book= entity1.Books.First();
entity1.Dispose();
然后,我尝试将这个对象添加为一个新对象
var entity2 = new testEntities();
book.Id = 0;
entity2.SaveChanges();
entity2.Dispose();
我还尝试初始化 Book 的 EntityKey 没用
有没有办法在不创建新 Book 和从旧 Book 复制属性的情况下做到这一点?
谢谢
最佳答案
您需要获取实体,将 ObjectStateManager
中的 EntityState
更改为 Added
并调用 SaveChanges
:
var entity1 = new testEntities();
var book = entity1.Books.First();
ObjectStateEntry bookEntry = entity1.ObjectStateManager.GetObjectStateEntry(book);
bookEntry.ChangeState(EntityState.Added);
entity1.SaveChanges();
这将复制您的“书”。
关于c# - 如何使用 Entity Framework 将现有实体添加为新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3317611/