2014-12-09 2 views
0

모바일 응용 프로그램에서 일부 데이터를 보내고 DB에 저장하는 데 사용되는 WCF 웹 서비스에서 작업했습니다."종속 작업의 유효한 순서를 확인할 수 없습니다"

테스트 사례 중 하나는 앱에 2 개 (또는 그 이상)의 레코드를 추가하려고 시도하고 서비스가 일괄 삽입/업데이트 작업을 수행하기 위해 호출된다는 것입니다. 내가 localhost를 사용하지만, 우리가 그것을 테스트 할 때 프로덕션 서버를 사용하여 테스트 할 때

모든 다른 레코드가 오류 메시지가

Unable to determine a valid ordering for dependent operations...store-generated values.

I를 유발 동안 만 첫 번째 레코드가 저장됩니다 잘 간다 원인이 무엇인지, 어떻게 해결해야하는지 전혀 모른다. 몇 가지 연구를 해본 결과, model/DB table에는 순환 의존성이나 자체 의존성이 없다고 확신합니다.

public void submit(List<SubmissionParameter> param){ 
    using (var context = ObjectContextManager.AuditEnabledInstance){ 
     foreach (var item in param){ 
      ReadingSubmission readingSubmission = context.ReadingSubmissions.Where(p => p.ReadingSubmissionUniqueIdentifier == item.Readingsubmissionuniqueidentifier).SingleOrDefault(); 
      if (readingSubmission == null){ 
       readingSubmission = new ReadingSubmission(); 
       context.ReadingSubmissions.AddObject(readingSubmission); 
      } 

      readingSubmission.ReadingSubmissionUniqueIdentifier = item.Readingsubmissionuniqueidentifier; 
      readingSubmission.SystemID = item.Systemid; 
      readingSubmission.UserID = item.Userid; 

      foreach (var record in item.Readings){ 
       SystemReading systemReading = context.SystemReadings.Where(p => p.SystemReadingUniqueIdentifier == record.Systemreadinguniqueidentifier).SingleOrDefault(); 
       if (systemReading == null){ 
        systemReading = new SystemReading(); 
        readingSubmission.SystemReadings.Add(systemReading); 
       } 
       systemReading.SystemReadingUniqueIdentifier = record.Systemreadinguniqueidentifier; 
       systemReading.MeasurementID = record.Measurementid;   
      } 
      context.SaveChanges(); 
     } 
    } 
} 

ReadingSubmissionSystemReading

SubmissionParameter이 웹 서비스에 JSON 개체를 보내드립니다 모바일 클라이언트로 바로 전송 객체 인 1 to many 관계입니다 : 아래

웹 서비스의 조각입니다 .

나는이 웹 서비스에 JSON을 게시하여 테스트 할 수 있으므로이 문제는 모바일 클라이언트 측에 없다고 확신합니다.

도움을 주시면 감사하겠습니다. 감사!

답변

0

마침내 왜 문제가 해결되는지 잘 모르겠지만 문제를 해결합니다.

나는 다음 모든

다시 작동 foreach 루프 밖으로 context.SaveChanges() 이동 모두 localhost 및 생산

은 누군가가 시간을 절약하는 데 도움이 될 수 있습니다 희망

관련 문제