1

考虑驻留在服务(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 的属性。分离上下文后,表的 LinkedTable 属性为空。

我怎样才能防止这种行为?

保罗

4

2 回答 2

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;
}
于 2013-02-22T09:55:35.027 回答
0

这有帮助吗

using(var context = new ctxEntities()){
    context.Configuration.ProxyCreationEnabled = false;
    context.Configuration.LazyLoadingEnabled = false;
    //....
于 2013-02-22T09:58:12.010 回答