2011-01-26 4 views
0

POCO RIA Silverlightプロジェクトをセットアップしようとしています。ドメインサービスがデータを返すと、データが失われています。RIAとPOCOs親の関係がすべてのデータを返さない

以下、私は親子クラスと私のドメインサービスを含めました。それは、各親オブジェクトが3つのChildオブジェクトを含む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

もっと深く見ることなくちょうど最初のコメント - あなたは2つの異なる関連付けに同じ名前を付けました。これらの名前を一意にする必要があるかもしれません。

+0

ありがとうございました。うまくいきませんでした。 – TonyAbell

1

問題は、ドメインサービスでコレクションを作成する方法にありました。

私は親の子供のそれぞれに対して同じChildID {1,2,3}を使用していましたが、各子IDはすべての子供の中で一意である必要がありました。それはデータベースのようなものです。愚かな私。

+0

それはそうです。あなたがそれを理解してうれしい! –

関連する問題