代码之家  ›  专栏  ›  技术社区  ›  Stephan

RIA服务使用LINQ加载外键到SQL

  •  1
  • Stephan  · 技术社区  · 14 年前

    我有一个由5个表组成的数据库:课程、类别、位置、课程类别和课程位置。最后两个表只包含两个外键。课程与类别和地点都有多对多的关系。

    我正在尝试使用RIA服务将数据加载到Silverlight应用程序中。我的数据库模型是Linq to SQL。我尝试将[include]属性添加到元数据类中,并添加了dataloadOptions,因此当您请求课程时,它应该加载所有表。但是在客户方面,我从来没有得到过课程类别和课程地点属性中的任何条目。

    要使外键关系在序列化过程中存在,还需要做什么。

    2 回复  |  直到 12 年前
        1
  •  4
  •   Jeremiah    14 年前

    包括来自外键关系的记录有两个步骤:

    1。告诉WCF RIA服务有关include的信息

    通过放置 [Include] 实体定义中的属性,在外键上方

    [Include]
    public MyOtherTable MyOtherTable { get; set; }
    

    2。告诉WCF RIA服务,此特定查询使用的包括

    在查询中,必须使用 .Include("MyOtherTable") 逻辑告诉此查询包含来自该关系的数据。

    public IQueryable<Table> GetTable()    
    {
        return this.ObjectContext.Table.Include("MyOtherTable");
    }
    

    听起来你好像错过了第二步。第二步允许您选择下载这些额外记录的查询。

        2
  •  0
  •   invalidusername    14 年前