我有一个由5个表组成的数据库:Course,Category,Location,CourseCategories和CourseLocations。最后两个表只包含两个外键。课程与类别和位置有多对多的关系。
我正在尝试使用Ria Services将数据加载到Silverlight应用程序中。我的数据库模型是Linq-to-SQL。我已经尝试将[Include]属性添加到元数据类中,并且我添加了DataLoadOptions,因此它应该在您请求课程时加载所有表。但是在客户端,我永远不会收到CourseCategories和CourseLocations属性中的任何条目。
还需要做些什么来使序列化中存在外键关系。
答案 0 :(得分:4)
包含来自外键关系的记录有两个步骤:
<强> 1。告诉WCF RIA服务包含
将[Include]
属性放在实体的定义中,位于外键
[Include]
public MyOtherTable MyOtherTable { get; set; }
<强> 2。告诉WCF RIA Servics此特定查询使用Include
在您的查询中,您必须使用.Include("MyOtherTable")
逻辑来告知此查询包含该关系中的数据。
public IQueryable<Table> GetTable()
{
return this.ObjectContext.Table.Include("MyOtherTable");
}
听起来你错过了第二步。第二步允许您选择下载这些额外记录的查询。
答案 1 :(得分:0)
这对我有用:
http://xamlgeek.net/2010/02/28/properties-in-wcf-ria-services-using-linq-to-sql/
DataLoadOptions对象