pvi*_*ira 8 .net c# sql-server entity-framework-4
有两个具有相同模式的独立数据库,我需要使用Entity Framework 4将实体(记录)从一个数据库复制到另一个数据库.
我正在创建2个上下文,但是当我向第二个上下文添加一个实体时,我收到以下错误:
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
Run Code Online (Sandbox Code Playgroud)
我知道如果我使用Detach方法可以避免该错误,但在这种情况下相关实体会丢失!
示例代码:
var cx = new MyEntities();
//eager load related tables
var allEntities = from x in cx.Reservation.Include("Detail.MoreDetail")
select x;
// new instance of context but connected to a second database
var cx2 = new MyEntities( new ConnectionString...);
foreach (var e in allEntities)
{
//cx.Detach(reservation); // can't detach, or related entities will be lost
cx2.AddToReservation(reservation); // error happens here!
cx2.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我该如何进行这样的操作?或者,如何在不丢失相关实体的情况下分离实体?
一旦错误消息有用 - 实体一次只能属于一个上下文.为了做你想要的事情,你需要Detatch从第一个上下文中的每个实体,然后再将它添加到第二个上下文.
就像你说的,这将杀死相关实体.不幸的是,你将不得不处理这个(令人讨厌的)方面Detach.
| 归档时间: |
|
| 查看次数: |
7930 次 |
| 最近记录: |