首先,我真的非常感謝開發者...... Breeze絕對是太棒了,我無法感謝您的辛勤工作!儘管[BreezeQueryable(MaxExpansionDepth = 100)],深度展開無法正常工作
我一直在使用Breeze和EF(最新的Breeze,最新的EF)一段時間,並且在一些數據庫更改後,我現在被迫查詢第四層對象...起初,我碰到MaxExpansionDepth已達到的錯誤,但根據SO上的幾個問題/答案,我找到[BreezeQueryable(MaxExpansionDepth = x)]屬性。我已經將該屬性應用於控制器上的相關查詢功能,從而消除了錯誤......但是,第四級的數據仍然沒有填寫。
我已經用特定的查詢(基於4rth級別數據的關鍵字)成功檢索了有問題的數據,並且在服務器端玩時一切正常......關係正常工作等等......麻煩查詢如下:
function getPatient(patKey) {
var query = breeze.EntityQuery
.from("Patients")
.where("Key", "==", patKey)
.expand("..., ScanDates.Printouts.BMDSites, ...");
return app.dataservice.manager.executeQuery(query);
}
順便說一句 - 這是所有的單一病人,所以真的沒有那麼多的數據 - 它只是分隔很多!
如果有人有任何想法,我會非常感激!
乾杯, 布拉德
PS:很顯然,我並不需要一個 「MaxExpansionDepth = 100」,但我也試圖與低值(4,5等)
編輯:感謝Dominictus,我現在意識到真正的問題並不在於查詢的深度 - BMDSites在響應中回來,但無論擴展深度如何,都不實現實體。如果我只是爲他們查詢(即BMDSites的PrintoutKey = x),他們會實現物化......但是,這又會導致10或15次到達服務器。我仍然很想知道如何一次搞定所有東西,或者只是瞭解爲什麼這些東西不會實現擴張!
編輯2:它只是發生在我身上的打印輸出類是基類TPH繼承層次的...在其他一些問題,環顧四周,我懷疑這是有可能的來源問題。
謝謝...還沒加載,但它確實讓我想直接檢查響應 - 數據存在於對查詢的響應中(使用您在操作中的.Include建議或原始擴展查詢)......它只是沒有物化通過微風進入物體!?對不起,如果我以前不清楚 - 客戶端或服務器上沒有顯示錯誤。 – bparcels