【发布时间】:2015-08-15 04:08:18
【问题描述】:
给定以下代码:
void MergeDbContext(DbContext aSourceDbContext, DbContext aDestinationDbContext)
{
var sourceEntities = aSourceDbContext.ChangeTracker.Entries().ToList();
foreach (DbEntityEntry entry in sourceEntities)
{
object entity = entry.Entity;
entry.State = EntityState.Detached;
// check if entity is all ready in aDestinationDbContext if not attach
bool isAttached = false;// TODO I don't know how to check if it is all ready attched.
if (!isAttached)
{
aDestinationDbContext.Set(entity.GetType()).Attach(entity);
}
}
}
我如何一般地确定一个实体是否存在于上下文中。
【问题讨论】:
-
如果有关联和修改实体,这会不会很复杂?您打算保留修改吗?
-
@jjj 每个 DBContext 只能执行 1 个异步查询,并且我想执行多个以提高性能。所以我创建了 2 个 DBcontext,在这里我试图合并结果。对于我的特定实例,这些将是只读的并且没有更改。
标签: entity-framework-6 dbcontext