여기에 제 시나리오가 있습니다 :Silverlight & RIA & POCO : 두 개의 새 하위 항목을 삽입 할 때 SubmitOperationFailed. 동일한 ID를 가진 엔티티가 존재합니다
Silverlight, RIA 및 POCO 개체 (Entity Framework 없음, Oracle 및 SP와 관련됨)를 사용하고 있습니다.
Child 개체 모음이 포함 된 Parent 개체가 있습니다. 부모에 연결 및 구성 속성을 올바르게 설정했습니다. 변경 내용을 저장하려면 개체 그래프 전체가 서버로 올바르게 보내집니다.
사용자는 부모에게 하나 이상의 Child 개체를 추가 할 수 있습니다.
이제 사용자가 하나의 Child 객체를 부모에 추가하고 저장하면 모든 것이 작동합니다. 지금
System.ServiceModel.DomainServices.Client.DomainOperationException: Submit operation failed. An entity with the same identity already exists in this EntitySet. ---> System.InvalidOperationException: An entity with the same identity already exists in this EntitySet.
이 클라이언트에서 실패 : 사용자가 상위에 두 개 이상의 새로운 개체를 추가하고 유지하려고 할 때, 나는 고전적인 오류가 발생합니다. 나는 모든 것을 추적하고 있습니다 - 데이터베이스가 실제로 업데이트됩니다! 모든 것이 올바르게 서버로 전송되고 DB가 업데이트됩니다. 재 쿼리가 발생했을 때 서버의 객체 키를 확인하고 올바른지 확인합니다. 새 자식 객체는 모두 0에서 순차적으로 실수로 업데이트 된 ID를 얻습니다.
이 오류가 발생하는 클라이언트에서 Parent 개체를 다시로드 할 때가 있습니다. 나는 그것을 얻지 않는다. 다시로드 작업에 대한 새 컨텍스트를 새로 작성 중입니다. 비어 있어야하며 부모 및 관련 하위 항목 만로드해야합니다. 쿼리 방법에서 벗어나기 전에 서버 측의 데이터를 확인합니다. 부모 및 자식 데이터는 문제가 없습니다. 무슨 일 이니? 컨텍스트가 왜이 SubmitOperation을 완료하지 못하는 것에 대해 불평하지 않습니까?
나는 이것을 알아 냈다. 기본적으로, 당신은 일을 수동으로 시도하고 RIA가 당신을 위해 그것을하도록 노력하고 종료해야합니다. –