我是新来的微风。我试图在客户端中定义我的实体类型而不从服务器获取元数据。我在服务器实体中有一个名为 ID 的属性。
我使用以下代码将客户端的命名约定默认为驼峰式。
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 字段没有得到正确的值。相反,它具有由微风数据类型 ctor 设置的默认值,该值等于Guid.Empty
.
通过单步执行breathjs 调试脚本,我发现它会Id
在来自ajax 请求的数据中查找一个属性名称。但它找不到它,因为属性是ID
,所以它将它初始化为empty guid
字符串。我假设通过设置nameOnServer
的属性dataProperty
id
,我将能够修复它。
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 代码,在第updateClientServerNames
7154 行的方法中,它似乎忽略了nameOnServer
我定义的。
我在这里错过了什么吗?