2011-07-18 33 views
0

我正面临着很奇怪的问题。我有3张桌子。我在WCF中使用LINQ to SQL。从WCF返回两级关系数据

  1. Number(它具有链接到RankRankId外键)
  2. RankRankId主键)
  3. CategoryRank(它也有其连接到RankRankId外键)

我使用的WCF是从Number表返回前10位数据。当我看到n.Rank.Number(其中n是Number类的对象)和n.Rank.CategoryRank在WCF端时,它向我显示正确填充的数据。但在客户端,当我检查n.Rank.Number(它显示我填充的数据),其中n.Rank.CategoryRank为空。

我将数据返回为List<Number>。我也尝试使用加载选项,但它没有奏效。在客户端HasAssignedOrLoadedValues对于x.Rank.Number是正确的,对于x.Rank.CategoryRank它是错误的。

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

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

问候,

Viresh

+0

你能向我们展示**你在服务器端使用的Linq-to-SQL查询吗? –

回答

1

如果号是一个LINQtoSQL产生输入你也许并不需要共享类型与客户端,而不是创建一个与数据成员一个DataContract的自定义类型和映射你需要从Number到这个自定义类型的值,使用反射或类似AutoMapper的东西。所以相反,你会有服务的返回值为

List<CustomNumberType> instead. 

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