2011-07-18 37 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沒有被序列化。