我的模型中有一个 64 位(长)属性。元数据是正确的,breezejs 知道它是一个 64 位属性。
然而,在查询数据时,ODATA URL 在值之后不包含“L”,因此我在服务器上遇到异常,因为它认为我正在尝试针对 int32 进行查询。
所以我不得不在过滤器的末尾手动添加“L”。
这不应该由微风自动完成吗?
编辑
在微风的代码中,有一个 fmtInt 函数。尽管 dataType 是 Int64,但它仍然存在。我想应该有一个 fmtLong 函数,用于添加“L”。
我更改了以下代码:
DataType.Int64 = DataType.addSymbol({
defaultValue: 0, isNumeric: true, isInteger: true, quoteJsonOData: true,
parse: coerceToInt,
fmtOData: fmtInt,
getNext: getNextNumber
});
到
DataType.Int64 = DataType.addSymbol({
defaultValue: 0, isNumeric: true, isInteger: true, quoteJsonOData: true,
parse: coerceToInt,
fmtOData: makeFloatFmt("L"),
getNext: getNextNumber
});
它有效。这是正确的方法吗?如果是这样,是否可以修复错误?