考虑以下代码驻留在服务(WCF)中:
using (var context = new ctxEntities())
{
var result = context.MyTable.Include("LinkedTable")
.Where(c => c.RepairID == repairID).ToList();
result.ForEach(e => context.Detach(e));
return result;
}
我想访问WPF环境中的LinkedTable属性,并希望(或有?)分离上下文。 在分离上下文(result.foreach ....)之前,我可以“看到”LinkedTable作为Table的属性。 在分离上下文后,Table的LinkedTable属性为null。
如何防止此行为?
保
答案 0 :(得分:0)
Detach
也会卸载关系管理器中条目的相关末尾。
如果您通过预先关闭跟踪来消除分离的需要,这会有所帮助。无论如何,这是一种改进,因为它消除了附加/分离的开销。
using (var context = new ctxEntities())
{
context.MyTable.MergeOption = MergeOption.NoTracking;
var result = context.MyTable.Include("LinkedTable")
.Where(c => c.RepairID == repairID).ToList();
return result;
}
答案 1 :(得分:0)
这有用吗
using(var context = new ctxEntities()){
context.Configuration.ProxyCreationEnabled = false;
context.Configuration.LazyLoadingEnabled = false;
//....