我们在将所有非常大的 Int64 值从服务器加载到客户端时遇到问题。我认为问题在于所有大于 25776087313154050 的数字。我们使用 Breeze 的 No DB 方法并手动制作所有元数据。这是元数据:
store.addEntityType({
shortName: "AdditionalInfoType",
namespace: "Services",
autoGeneratedKeyType: breeze.AutoGeneratedKeyType.Identity,
dataProperties: {
id: {dataType: breeze.DataType.Int64, isNullable: false, isPartOfKey: true },
name: { dataType: breeze.DataType.String, isNullable: true },
dataType: { dataType: breeze.DataType.String, isNullable: false, defaultValue: 'Unknown' }
},
navigationProperties: {
enumItems: {
entityTypeName: "AdditionalInfoEnumValue", isScalar: false, associationName: "AdditionalInfoEnumValue_AdditionalInfoType"
}
}
});
这是 Fiddler 从服务器显示的内容(此处数据正确):
[{"$id":"1","$type":"Services.AdditionalInfoType, Services",
"Name":"Shoe Size","DataType":"Numeric","EnumItems":null,"Id":25776087313154051},
{"$id":"2","$type":"Services.AdditionalInfoType, Services",
"Name":"Floating Holiday","DataType":"Date","EnumItems":null,"Id":25776087313154050}]
微风查询非常简单:
entityQuery.from('AdditionalInfoTypes')
.toType(entityNames.additionalInfoType)
.using(employeeManager)
这里有我们在客户端的内容(不幸的是我不能在这里发布图片):
entity[0].id == 25776087313154052
entity[1].id == 25776087313154050
因此,第二个实体的 ID 正确加载并具有值:25776087313154050
对于客户端和服务器。但是对于25776087313154051
客户端上的服务器值,它的25776087313154052
.
我做了一些实验,发现所有数字> 25776087313154050(对于关键部分和非关键部分)都可以重现该问题。每次微风装载机将数字增加 1。
有什么想法我错了或如何解决?