2011-01-26 3 views
0

POCO RIA Silverlight 프로젝트를 설정하려고합니다. 도메인 서비스가 데이터를 반환하면 데이터가 누락됩니다.RIA 및 POCOs 자식 관계가 모든 데이터를 반환하지 않음

아래에는 부모/자식 클래스와 도메인 서비스가 포함되어 있습니다. 3 개의 Child 객체가 포함 된 각 부모 객체가있는 5 개의 부모 객체 목록을 반환해야합니다. 내가 원하는 개체 트리를 올바르게 반환하도록 도메인 서비스를 설정했다고 생각합니다.

도메인 서비스는 5 개의 상위 개체를 반환합니다. 첫 x 째 상위 오브젝트는 세 개의 하위 오브젝트를 올 Y 르게 포함합니다.

그러나 이후의 모든 상위 개체에는 하위 개체가 없습니다. 나는 잘못된 것을하고있다.

도움이되는 몇 가지 자료를 찾았으므로 결과가없는 처방 된 방법을 따르는 것 같습니다. 누군가가 내가 뭘 잘못 지적 할 수있는 경우

Link 1 Link 2

은 내가 대단히 감사하겠습니다.

public class Parent 
{ 
    [Key] 
    public int Id { get; set; } 
    public string Name { get; set; } 

    private List<Child> _children = new List<Child>(); 

    [Include] 
    [Association("ParentChildRelation", "Id", "ParentId")] 
    [Composition] 
    public List<Child> Children 
    { 
     get { return _children; } 
    } 
} 
public class Child 
{ 
    [Key] 
    public int Id { get; set; } 
    public string Name { get; set; } 

    private int _parentId; 
    public int ParentId { get { return _parentId; } } 

    private Parent _parent;   
    [Association("ParentChildRelation", "ParentId", "Id", IsForeignKey = true)]   
    public Parent Parent { get { return _parent; } set { _parent = value; _parentId = value.Id; } } 
} 
[EnableClientAccess()] 
public class PocoDomainService : DomainService 
{ 
    public List<Parent> GetParents() 
    { 
     var list = new List<Parent>(); 
     list.AddRange(from p in Enumerable.Range(1, 5) 
         select (new Parent() 
         { 
          Name = "Parent " + p.ToString(), 
          Id = p 
         })); 
     foreach (var p in list) 
     { 
      p.Children.AddRange(from c in Enumerable.Range(1, 3) 
           select (new Child() 
           { 
            Id = c, 
            Name = "Child " + c.ToString() + " From " + p.Name, 
            Parent = p 
           })); 
     } 
     return list; 
    } 
} 

답변

0

두 가지 다른 연관성을 동일하게 지정했습니다. 이러한 이름을 고유하게 만들어야 할 수도 있습니다.

+0

감사합니다. 작동하지 않았습니다. – TonyAbell

1

문제는 도메인 서비스에서 컬렉션을 만드는 방법이었습니다.

부모 자녀 각각에 대해 동일한 하위 ids {1, 2, 3}을 사용 중이므로 각 자녀 ID는 모든 자녀 중에서 고유해야했습니다. 마치 데이터베이스에있을 것입니다. 바보 나.

+0

그럴 겁니다. 당신이 그것을 알아 낸 것을 기쁘게 생각합니다! –

관련 문제