如何将现有实体添加为具有实体框架的新实体

时间:2010-07-23 11:13:14

标签: c# .net entity-framework

我想使用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 它没有工作

有没有办法在不创建旧书籍和复制属性的情况下这样做?

由于

1 个答案:

答案 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();

这将复制您的“图书”。