2011-01-26 75 views
0

我正在嘗試設置POCO RIA Silverlight項目。當域服務返回數據時缺少數據。RIA和POCO兒童家長關係不返回所有數據

下面我已經包含父/子類和我的域名服務。它應該返回包含3個子對象的每個父對象的5個父對象列表。我相信我已經設置了域服務來正確地返回我期望的對象樹。

域服務返回5個父對象。第一個父對象正確包含3個子對象。

但是,後續的所有父對象都不包含子對象。我做錯了什麼。

我已經找到了一些資源,幫助和我似乎是在與沒有結果自己規定的方法。

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 2011-01-26 17:30:29

1

問題在於我如何在域服務中創建集合。

我用的是相同的子ID {1,2,3}每個家長的孩子,需要每一個孩子的ID是所有的孩子中是唯一的。就像它會在數據庫中一樣。傻我。

+0

這樣做。恭喜你弄明白了! – 2011-01-27 00:15:26