繁体   English   中英

如何使用实体框架将现有实体添加为新实体

[英]How to Add existing entity as a new Entity with Entity Framework

我想使用实体框架在数据库中创建对象的副本

首先,我从数据库获得了“书”

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和复制旧属性的情况下做到这一点?

谢谢

您需要获取实体,在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();

这将复制您的“书”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM