給定一個具有導航屬性的實體,有沒有辦法判斷空導航屬性是否是因爲子實體從未加載過,而不是已經加載的集合而只是空的?任何方式來判斷微風導航屬性是否已被加載?
例如:我用一個實體A列表加載頁面。每個實體A的導航屬性都是實體B的集合。我不需要加載列表的導航屬性,因爲它可能是一個大的子實體的數量,所以我不選擇擴大導航屬性。然而,我想然後顯示關於單個實體A的'詳細信息'頁面,其中我想要顯示實體B的列表。當加載該頁面時,我可以使用fetchByEntityKey
從緩存中獲取原始實體A,但是該緩存實體不包含導航屬性集合。因此該頁面不會顯示子屬性。有沒有辦法告訴導航屬性從未加載,而不是集合只是空的,所以我可以選擇是否刷新導航屬性loadNavigationProperty
或其他查詢?
可以使用isPartial標誌來判斷是否實體已經完全加載與否。這是你想要的?在這裏檢查http://stackoverflow.com/questions/16301734/breeze-ispartial –
isPartial標誌是由自定義構造函數添加的自定義屬性。我可能會添加類似的東西,但是然後我需要找到一種方法將不同的構造函數附加到不同查詢的結果中。不要以爲這聽起來不錯。 – Adam
這不完全正確 - 如果您的構造函數將isPartial設置爲false,但是當您執行查詢時,根據是否已完全加載它將其設置爲true,則應該處理您的情況。在你的邏輯中還有另外一個缺陷 - 如果你創建了一個B類型的對象,然後加載A,那麼你有錯誤的肯定,A的B是加載的 - 如果你使用的是部分 –