RIA에서 작동하는 프레젠테이션 모델 (here 및 here)을 얻으려고합니다. 내가 찾을 수있는 모든 예는 1 - 다수 또는 다수 - 많은 관계가없는 단순한 평면 데이터 엔티티입니다. 특히 업데이트 및 연관 관계에 삽입 할 수는 없습니다.1-many 또는 many-many 관계가있는 RIA 서비스 프레젠테이션 모델
쿼리 잘 작동 할 수 있습니다. 연관 속성 (및 필요한 경우 포함 특성)으로 표시된 프레젠테이션 클래스가 있으며, 데이터가 클라이언트 측에로드되고 엔티티로 유지되는 방법에 대해 잘 이해하고 있습니다. . 또한 새로운 엔티티에 대한 설명도 들어 있습니다. 그러나 다음과 같은 문제가 발생합니다. 다음 예에서는 단순한 앨범 및 아티스트 엔티티가 있다고 가정합니다. 앨범에는 아티스트가 하나 있고 아티스트는 앨범 수가 0 개에서 많을 수 있습니다. 둘 다 Name 속성을가집니다. 내가 myArtist.Albums.Add (anAlbum) 또는 myArtist.Albums.Remove (anAlbum)를 할 경우 클라이언트 측에
- 는 아무 일도 발생하지 않습니다. HasChanges는 false를 반환합니다. (myArtist 및 anAlbum은 엔티티를로드하고 특정 엔티티에 대한 참조를 얻기 위해 반복적으로 코드에서 얻은 것입니다. UI 또는 DomainDataSources에서 아직 아무것도하지 않고 주위를 둘러 보지 않고 있습니다.
- 아티스트 및 SubmitChanges의 이름을 업데이트하는 경우 서버에서 Update 메서드가 호출되면 Albums 컬렉션이 null입니다.
누구나 제안 사항이 있습니까? 아니면 더 복잡한 개체를 사용하는 예를 들어 주시겠습니까?
EDIT (후자는 위와 동일 함) : 좋습니다. 두 번째 문제 (서버에서 Update가 호출되면 엔티티 또는 엔티티 컬렉션에 대한 참조가 null로 표시됨)는 존재합니다. 변경됨으로 표시되지 않으므로 일련 화되지 않고 다시 전송됩니다. 나는 당신이 [Composition]을 사용함으로써 그것을 강제로 할 수 있다는 것을 알고 있으며, 나는 그것을 그런 식으로 작동 시켰습니다, 그러나 이것은 compositional 관계가 아니며 두 엔티티 모두 "최상위"엔티티가되기를 원합니다. 엔티티를 변경된 것으로 표시하려면 어떻게합니까?