2013-02-22 1 views
1

를 분리 한 후 개체를 포함 : (? 또는이)손실은 서비스에있는 다음 코드 (WCF) 고려 ObjectContext를

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 속성이 null입니다.

이 동작을 어떻게 막을 수 있습니까? 폴

답변

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; 
} 
+0

감사 @Gert, 이 도움말을합니까. sc.Completed + = (s, e) 0> {this.rep = e.Result}; 연결이 닫혔다는 오류가 발생했습니다 ... –

+0

'NoTracking'을 설정하면 어떻게되는지 알 수 없습니다. 설정과 쿼리 실행 사이에 비동기가 발생하지 않습니다. –

0

내가 (메신저 데이터를 얻을 수있는 비동기 WCF 방법을 사용하여) 이를 serviceClient.Completed 이벤트에 NoTracking 옵션 결과를 구현

using(var context = new ctxEntities()){ 
    context.Configuration.ProxyCreationEnabled = false; 
    context.Configuration.LazyLoadingEnabled = false; 
    //.... 
+0

'DbContext'가 아니라'ObjectContext'에 관한 것입니다 –

+0

Ooops - 저의 실수입니다! –

관련 문제