WCF를 통해 linq 객체를 직렬 처리합니다. dbml은 단방향 직렬화를 위해 설정됩니다.WCF를 사용하여 linq 엔티티 직렬화
내 개체는 매우 간단합니다. Budget에는 BudgetLineItems 컬렉션이 있습니다. 각 BudgetLineItem에는 ItemCateogry가 있습니다.
예산/BudgetLineItem은 잘 serialize됩니다. 그러나 각 BudgetLineItem의 ItemCatogry는 그렇지 않습니다. 기본적으로 linq는 각 BudgetLineItem에 대한 ItemCategory에 [DataMember]를 추가하지 않았습니다. 수동으로 추가하고 [IgnoreDataMember]를 사용하여 ItemCategory 엔터티에 가능한 순환 참조를 제거했습니다. 그러나 운이 없다.
질문 :
는 WCF 수, 기본적으로 대일 관계를 직렬화, 아니면 내가 뭔가를 놓친 거지? 직렬화 된 데이터가 각 BudgetLineItem에 대해 중복 된 ItemCategory 데이터로 인해 다소 오히려 줄어들지 만 괜찮습니다.
이 경우 사용자 지정 DataContractSerializer를 수행해야합니까?
** 실제로 ** 실제로는 (DataMember 추가) 작동했지만 클라이언트 (duh)에서 서비스 참조를 업데이트하지 않았습니다.
새로운 질문 : 디자이너가 생성하는 엔티티에서 [DataMember] 및 [IgnoreDataMember] 필드를 유지하도록 linqtosql 디자이너에 지시 할 수있는 방법이 있습니까? 그렇지 않으면 dbml을 저장할 때마다 업데이트해야합니다.
정보 주셔서 감사합니다. 성공적인 직렬화를 위해 우리는 [DataMemberIgnore]를 재귀 적 (일반적으로 부모에 대한 참조) 인 모든 소품에 추가해야했습니다. 이는 소급되지 않기 때문입니다. dbml을 변경하면 모든 변경 사항을 덮어 씁니다. 그것은 작동하지만 아주 매끄럽지는 않습니다. 알다시피, 직렬화 된 객체는 _huge_입니다. 다행히도 이것은 개념 증명을위한 것입니다 (SQLRS2008은 WCF 레이어를 사용하여 우리의 서비스를 줄였습니다.) – ericvg
OK no prob. 내 복제 절차를 잘 살펴보고, 그 경로가 도움이되기를 바랍니다. – GONeale
좋아요! 귀하의 블로그가 사라진 것을 제외하고는 : ( – Moulde