2014-04-22 33 views
0

Visual Studio Lightswitch 2013 使用sql服務器數據源,我們有一個與其他實體B,C,...的n:1關係的實體A;因此,實體A具有B,C,...類型的導航屬性...在帶有sql server數據源的HTML客戶端中導航屬性

對於HTML客戶端,在對實體A發出查詢後,屬性B,C ...都未定義。這發生在下列情況:

  • 添加一個數據項的屏幕,相關實體包括:(使用「編輯查詢」「管理包括數據」功能); (ex:screen.Customers.load(false).then(...))

  • 通過'expand'方法以編程方式使用數據服務(ex :myapp.activeDataWorkspace.SqlData.Customers.expand( 「地址」)執行(),然後(...)

檢查返回的數據,每一個實體實例的 '隱藏' 屬性 '_'。外鍵字段正確加載

注意:用Fiddler檢查請求的url顯示查詢是正確的;檢查sql server發出的查詢y(儘管Sql Server Profiler)顯示查詢包含相關數據。發出OData查詢顯示返回所有數據。 看來,客戶端,當數據被反序列化時,導航實體並未實現。

嘗試與內在數據源工作相同的方法(導航屬性按預期加載)。

任何人都可以幫忙嗎?

謝謝。

回答

0

進一步的測試表明,只有int列的外鍵才能正確處理爲導航屬性。 實例:

  • '錯誤' 的情況下: 表A,主鍵= nvarchar的字段類型爲nvarchar爲外鍵甲

    的字段B.f1 表B A導航屬性定義,但在客戶機側沒有實現

  • 「正確」的情況下 表C,主鍵= INT字段 表d與int類型爲外鍵至C

    012的字段D.f

    導航屬性在客戶端定義和實現