使用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生成的类。
答案 0 :(得分:2)
请参阅:RIA Services Overview - 4.8.1返回相关实体。
在返回RegionCurrentStates列表的服务函数中,添加DataLoadOptions并在元数据描述中将Include属性添加到Statespropriety。
在域类中定义的查询函数中添加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; }
}
}
祝你好运。