2011-11-15 10 views
2

次のように私はのDomainServiceをしたいと思いますどのようにRIAサービスと階層グラフを返すために

[EnableClientAccess] 
    public class FamilyService : DomainService 
    { 
     public IQueryable<Person> GetPeople() // for the time being fake out a set of people 
     { 
      var people = new[]{ new Person(), ... }; 
      return people.AsQueryable(); 
     } 
    } 

をPersonクラスは十分に単純でなければなりません:

public class Person 
    { 
     [Key] 
     public Guid Id { get; set; } 
     public Person Parent { get; set; } 
     public String Name { get; set; } 
     public Person[] Children { get; set; } 
    } 

Silverlightのクライアントでは、Personクラスという親または子のプロパティは含まれません。私は何が欠けていますか?

(おそらく、これは明らかに疑似例ですが、私は擬似結合アプローチを使用することを計画していますが、これは模倣しています。実際、ほとんどのデータはデータベースに存在しません大部分のRIAサンプルは、データベースからUIまでのモデルのエンドツーエンドパリティを使用します。私の場合はオプションではありません。

答えて

1

[Include]アトリビュートをParent & Childrenプロパティに追加してみてください。

public class Person 
{ 
    [Key] 
    public Guid Id { get; set; } 
    [Include] 
    public Person Parent { get; set; } 
    public String Name { get; set; } 
    [Include] 
    public Person[] Children { get; set; } 
} 

Personクラスは、(あなたの現実世界のアプリで)DBから出てきているとあなたがEFを使用している場合は、.Include()メソッドを使用して、熱心にロードすることを強制する必要があります。

+1

また、インクルードに関連属性を追加する必要がありました。 –

+0

ああ。私は自分でそれをする必要はありませんでした。それは、それが望んでいるものにはかなり厄介です。あなたがそれを解決したと聞いてよかった。 –

関連する問題