我是breezejs的新手。我試圖在客戶端中定義我的實體類型,而不從服務器獲取元數據。我在服務器實體中有一個名爲ID的屬性。breezejs addEntityType問題
我已經默認使用下面的代碼在客戶端的駱駝案件的命名約定。
breeze.NamingConvention.camelCase.setAsDefault();
所以,我開始如下
store.addEntityType({
shortName: "Photo",
namespace: "MyProj.Models",
dataProperties: {
id: {
dataType: DataType.Guid,
isNullable: false,
isPartOfKey: true
},
title: {
dataType: DataType.String
},
description: {
dataType: DataType.String
},
createdDate: {
dataType: DataType.DateTime
},
}
});
這一切工作正常,除了id字段沒有得到正確的值映射的實體。相反,它具有由breeze數據類型ctor設置的默認值,該值等於Guid.Empty
。
通過逐步調試breezejs調試腳本,我發現它在來自ajax請求的數據中尋找名爲Id
的屬性名稱。但它無法找到它,因爲該屬性爲ID
,因此它將其初始化爲empty guid
字符串。我假設通過設置dataProperty
id
的nameOnServer
屬性,我將能夠修復它。
store.addEntityType({
shortName: "Photo",
namespace: "MyProj.Models",
dataProperties: {
id: {
dataType: DataType.Guid,
isNullable: false,
nameOnServer: 'ID',
isPartOfKey: true
},
title: {
dataType: DataType.String
},
description: {
dataType: DataType.String
},
createdDate: {
dataType: DataType.DateTime
},
}
});
但它沒有奏效。
進一步挖掘breez.debug.js代碼,在線路7154上的方法updateClientServerNames
上,似乎忽略了我定義的nameOnServer
。
我在這裏錯過了什麼嗎?
我註釋了'breeze.NamingConvention.camelCase.setAsDefault();'行並相應地改變了映射的細節(即將它們改爲'PascalCase'。它可以很好地工作,但我希望它能在'camelCase'上工作。這是javaScript標準,任何幫助真的很感謝 – Amila