2014-06-23 14 views
1

Ria Services를 사용하는 Silverlight 응용 프로그램이 있습니다. 이제는 서버에서 예정된 주말 작업을 수행 할 다른 클라이언트 응용 프로그램 (콘솔 응용 프로그램)을 실행하려고합니다. 이 작업을 수행하고 중복을 피하려면 RIA Services DomainContext를 herehere과 같이 SOAP를 사용하는 웹 서비스로 노출하기 위해 Ria Services에서 설정 한 엔티티와 관계를 내 웹 사이트에 복제하지 않고 다시 사용할 수 있습니다. 고객.Ria Services SOAP 끝점을 사용하여 클라이언트의 레코드를 삽입 할 때 "잘못된 ChangeSet : 각 항목마다 고유 한 ID가 있어야합니다"오류

클라이언트에서 서비스 참조를 성공적으로 추가했으며 결과를 얻기 위해 웹 서비스를 성공적으로 쿼리 할 수있었습니다. 또한 하나의 새 데이터베이스 항목에 대해 "삽입"문을 수행 할 수 있습니다. 불행히도 업데이트 할 항목 집합에 둘 이상의 항목을 추가하는 순간 "잘못된 ChangeSet : ID가 각 항목마다 고유해야합니다."라는 오류 메시지가 나타납니다.

DomainServiceSoapClient service = new DomainServiceSoapClient(); 
List<DomainServices.ChangeSetEntry> changesToSave = new List<DomainServices.ChangeSetEntry>(); 
foreach (string name in myListOfNames) 
{ 
    Person newPerson = new Person() {Name = name}; 
    DomainServices.ChangeSetEntry entry = new DomainServices.ChangeSetEntry { Entity = newPerson, Operation = DomainServices.DomainOperation.Insert }; 
    changesToSave.Add(entry); 
} 
service.SubmitChanges(changesToSave.ToArray<DomainServices.ChangeSetEntry>()); 

오류 코드의 마지막 줄에 발생합니다

다음은 내 코드입니다. 테스트으로이 마지막 줄을 다음 줄로 바꾸면 (즉, 제출할 배열에 하나의 항목 만 있음) 작동하고 오류가 발생하지 않습니다.

service.SubmitChanges(new DomainServices.ChangeSetEntry[] {changesToSave.ToArray<DomainServices.ChangeSetEntry>()[0]}); 

어떻게이 SubmitChanges 있도록 내가 제출하고자하는 하나 개 이상의 항목이 작품을 할 때 해결할 수 ?

+0

테이블에 기본 키가 있습니까? –

+0

예. 전체 Silverlight 응용 프로그램은 잘 작동하며 Ria Services와 관련된 모든 사항은 Silverlight에서 작동합니다. 이 오류가 발생하는 것은 도메인 서비스 비누 클라이언트 측에서만 발생합니다. – Stanley

+0

누구든지 내 질문을 downvoted 누가 나에게 그것을 해결하고/또는 질문을 받아들이 기 위해 추가 정보를 줄 수있는 downvoted에 관해서는 포인터를 제공 할 수 있습니까? 단순히 downvoted 질문으로 나타나는 경우 나는이 질문을보고 아무도의 위험을 실행하고 난 정말 일부 입력이 필요합니다 ... – Stanley

답변

0

당신이 좋아하는 것을 사용해야한다면, 나는 사람이 당신의 테이블이라고 가정한다.

DomainServiceSoapClient service = new DomainServiceSoapClient(); 
    foreach (string name in myListOfNames) 
    { 
     Person newPerson = new Person() {Name = name}; 
     service.Person.Add(newPerson); 

    } 
service.SubmitChanges(); 
+0

아니요, 틀 렸습니다. Silverlight의 Ria Servics DomainContext 개체에 삽입 및 SubmitChanges를 수행하는 방법입니다. 여기에 DomainContext 함께 일하고, 나는 도메인 서비스 (내 질문에서 참조하는 링크 참조) 일하고 있습니다. DomainService 클래스는 "추가"메서드를 노출하지 않으므로 삽입 문은 내 질문에있는 링크와 같이 작동해야합니다. (불행히도 링크는 변경 사항 세트가 둘 이상의 항목을 가질 수있는 예제를 보여주지 않습니다.) – Stanley