2010-04-08 4 views
0

linq entitySet을 직렬화하려고 할 때 오류가 발생했습니다. 이 문제를 해결하기 위해 entitySet을 목록으로 변환했습니다. 지금까지 실행 한 문제는 자식 엔티티 집합이 목록으로 변환되지 않고 부모를 직렬화하려고 시도 할 때 오류가 발생한다는 것입니다. 누구든지 linq entitySet을 변환하는 방법을 알고 있고 목록에있는 자식입니까?linq entitySet 및 CHILDREN을 목록으로 변환하는 방법은 무엇입니까?

p.s. 나는 linq에 새로운거야 그래서이 dosn't 의미가 나를 알려주십시오

답변

1

그냥 프로젝트 :

var q = from e in Entities 
     select new 
     { 
      Id = e.Id, 
      Name = e.Name, 
      Children = from c in e.Children 
         select new 
         { 
          Id = c.Id, 
          Name = c.Name, 
          // etc. 
         }, 
      // etc. 
     }; 
var s = serializer.Serialize(q); 
1

나는 당신이 XML로 직렬화하려고하는 것 같아요.

어떤 방법 으로든이 문제는 LINQ 엔터티 개체의 순환 참조에서 유래합니다. 두 번째 테이블이 Orders 인 주 테이블 Customers이 있다고 가정 해 보겠습니다. Customers 엔티티에는 해당 고객의 Orders에 대한 참조가 있습니다 (일반적으로 Customer.Orders). Orders 엔티티에는 고객 엔티티에 대한 참조가 있습니다 (일반적으로 Order.Customer). serializer가이 개체를 serialize하려고하면 순환 참조를 인식하고 오류가 발생합니다.

원하는 작업을 수행하려면 고유 한 직렬 변환기를 작성하거나 직렬화 된 버전에 표시하려는 정보 만 포함하는 사용자 지정 직렬화 개체와 같이 직접 직렬화 할 수있는 개체로 개체를 변환해야합니다. 새로운 유형의 위에

관련 문제