1

Silverlight 3 と RIA サービスを使用して、Web プロジェクトで次のクラスを定義しています。

public class RegionCurrentStates
{
    public RegionCurrentStates()
    {
        Name = String.Empty;
        States= new List<State>();
    }
    [Key]
    public string Name { get; set; }
    public List<State> States{ get; set; }
}

ただし、クライアントでは、クラスは Name プロパティでのみ表示されます。州はどこにも表示されません。ある種のメタデータが欠落しているに違いないと思いますが、それが何であるかはわかりません。

編集: State は LinqToSql で生成されたクラスであることを明確にする必要があります。

4

1 に答える 1

2

以下を参照してください: RIA サービスの概要- 4.8.1 関連エンティティを返す。

RegionCurrentStates リストを返すサービス関数で、DataLoadOptions を追加し、メタデータの説明で、States の妥当性に Include 属性を追加します。

ドメイン クラスで定義されたクエリ関数に DataLoadOption を追加します。

public IQueryable<RegionCurrentStates> GetRegionCurrentStates()
{
    DataLoadOptions loadOpts = new DataLoadOptions();
    loadOpts.LoadWith<RegionCurrentStates>(r => r.States);
    this.Context.LoadOptions = loadOpts;

    return this.Context.RegionCurrentStates;
}

メタデータ:

//This class in generated by RIA wizard when you create 
//your DomainService (based on LinqToSqlDomainService) and you check
//[x]Generate metadata class in wizard window
//file: MyService.metadata.cs

[MetadataTypeAttribute(typeof(RegionCurrentStates.RegionCurrentStatesMetadata))]
public partial class RegionCurrentStates
{
    internal sealed class RegionCurrentStatesMetadata
    {      
      [Include]  //Add (only) this line 
      public List<State> States{ get; set; }
    }
}        

幸運を。

于 2009-11-17T08:15:39.850 に答える