빌드하고 싶은 웹 응용 프로그램의 서비스 계층을 다루는 것을 단순화 할 것이므로 RIA 서비스에 들어갔다. 어떤 종류의 관계형 데이터베이스 백업을 가지고있는 엔티티를 노출하고 소비하는 DomainService 클래스를 작성하는 방법을 보여주는 많은 예제가 있으므로 외래 키 관계가 있습니다. 그러나, 나는 일반적인 개체 그래프를 노출하고 소비하는 방법을 알고 싶습니다 ... 서로에 대한 참조를 포함하지만 외래 키가없는 개체.RIA 비 DB 객체 그래프 전송 서비스
예를 들어 "GetFolderInformation (string pathToFolder)"이라는 서비스 작업을 원한다고 가정하십시오. 이 RIA는 외래 키 관계가 실체를 처리하기를 원하는 것 때문에
- string Name
- IEnumerable<FileInformation> Files
나는이 작업을 얻을 수 없습니다 :이 함께 구성 "FolderInformation"라는 사용자 지정 개체를 반환합니다. 왜? 왜 serializer는 내 객체 참조를보고 상대방의 프록시에서 다시 만들 수 없습니까?
데이터는 외래 키 관계가 반드시 필요하지는 않은 서비스 계층 뒤에 있습니다 ... 예를 들어 폴더/파일과 같습니다.
편집 : 나는 내 질문을하지 않았다는 것을 깨달았습니다! 제 질문은, 제가하려고하는 것을 할 수있는 방법이 있습니까?
필자가 작성한 것보다 훨씬 복잡하다고 확신하지만, [Key] 애트리뷰트 대신 ObjectId와 같은 것을 사용하여 일반 오브젝트 그래프를 엔티티 그래프처럼 취급 할 수없는 이유는 무엇입니까? ] 속성이 정의되지 않았습니까? –
세션 전반에 걸친 부분 오브젝트 그래프를 스티칭 할 수있는 열쇠가 있습니다. 오브젝트 참조를 사용하는 것처럼 (ObjectId의 의미라고 가정) 작동하지 않습니다. 두 번째 객체를 참조하는 첫 번째 객체가 필요합니다. 두 번째 객체에 대한 참조가 없어도 두 번째 객체의 키, 즉 외래 키가 무엇인지를 알고 있어야합니다. 그리고 그러한 생각은 두 번째 목표는 안정되고 독특한 열쇠를 필요로합니다. –
나는 당신의 말을 거기에 가져갈 것입니다. 감사! –