我最近升級到最新版本的Breezejs(從1.3.6到1.4.1)。 我有,我從服務器獲取實體的情況下,我也得到類似Breezejs新版本的合併實體功能
{
"$type": "X.Y.Reference, X.Y",
"ReferenceTypeId": "BookEdited",
"ShouldDisplay": true,
"ShortTitle": "Informationsethik 1995",
"Title": "Informationsethik",
"Year": "1995",
"YearResolved": "1995",
"CloudProjectSubset": "ReferenceNavigation",
"Id": "34e1f0d1-eda7-4926-a13f-e75e43ff66b5",
"ProjectId": "syncproject1"
},
我希望你能注意到「ShouldDisplay」屬性設置爲true。 後來,由於我的應用程序的邏輯,我做的另一個查詢,我得到了別人之間,相同的實體,這個時候這樣的:
{
"$type": "X.Y.Reference, X.Y",
"ReferenceTypeId": "BookEdited",
"ShortTitle": "Informationsethik 1995",
"Title": "Informationsethik",
"Year": "1995",
"YearResolved": "1995",
"CloudProjectSubset": "ReferenceNavigation",
"Id": "34e1f0d1-eda7-4926-a13f-e75e43ff66b5",
"ProjectId": "syncproject1"
},
通知我不再獲得屬性「ShouldDisplay」,這根據我的邏輯是正確的。 Breezejs在每次查詢後將實體合併到本地緩存中。關鍵是,在第二次查詢後使用版本1.3.6時,我仍然有我的實體'ShouldDisplay'設置爲true(這是我想要的),因爲第二個查詢返回沒有該屬性的同一個實體,然後不被覆蓋。然而,如果我使用版本1.4.1,則該屬性(即使未序列化)無論如何都會被覆蓋並設置爲null,這不是我想要的。 簡而言之,在我看來,在版本1.3.6中,只有返回的屬性被覆蓋,而不是1.4.1,所有屬性都被覆蓋。 在Breezejs的website或網絡上,我沒有找到關於這種「合併」行爲的信息,只是關於未決變化的合併策略的設置,這不是我目前所面臨的。有誰知道這是Breezejs應該工作的方式還是我缺少一些配置?謝謝。
breeze的最新版本是1.4.9。這是你正在使用的? –
是的。我昨天更新了它。直到1.3.6版本它工作正常(實際上我在我的答案中指出的代碼行沒有!==未定義的檢查),從1.4.1和未來的版本我有這個問題,我似乎昨天解決。仍然不知道這是一個功能還是一個錯誤。 –