从WCF返回两级关系数据

时间:2011-07-18 12:40:14

标签: wcf

我面临着非常奇怪的问题。我有3张桌子。我在WCF中使用LINQ to SQL。

  1. Number(它有RankId外键,链接到Rank表)
  2. RankRankId主键)
  3. CategoryRank(它还有RankId外键与Rank表相关联)
  4. 我正在使用从Number表返回前10个数据的WCF。当我在WCF侧查看n.Rank.Number(其中n是Number类的对象)和n.Rank.CategoryRank时,它向我显示正确填充的数据。但是在客户端,当我检查n.Rank.Number(它显示我填充的数据)时,n.Rank.CategoryRank为空。

    我将数据作为List<Number>返回。我也尝试使用加载选项,但它没有用。 HasAssignedOrLoadedValues的{​​{1}}客户端x.Rank.Numberx.Rank.CategoryRank的错误。

    我的序列化模式为Unidirectional,并且关系表之间的子属性也为真。

    有人可以指导我这有什么问题吗?

    此致

    Viresh

1 个答案:

答案 0 :(得分:1)

如果Number是LINQtoSQL生成的类型,您可能不需要与客户端共享该类型,而是使用DataMembers创建一个DataContract的自定义类型,并使用反射将您想要的值从Number映射到此自定义类型或类似AutoMapper的东西。因此,您将从服务中获得返回值

List<CustomNumberType> instead.  

很明显n.Rank.CategoryRank没有被序列化。