我们遇到了与Breeze和Chrome相关的问题,我追踪到的是未正确设置Chrome中的EntityTypes的autoGeneratedKeyType。
这是在调用fetchMetadata()期间返回的元数据的摘录。请注意,annotation:StoreGeneratedPattern
属性的值为Identity
。
{
"name": "FileNote",
"customannotation:ClrType": "FileNotes.FileNote, FileNotes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
"key": { "propertyRef": { "name": "ID" } },
"property": [
{
"name": "ID",
"type": "Edm.Int32",
"nullable": "false",
"annotation:StoreGeneratedPattern": "Identity"
},
在Chrome以外的浏览器中完成fetchMetadata承诺后,此类型的autoGeneratedKeyType的值为Identity
。
metadataStore.getEntityType("FileNote").autoGeneratedKeyType.name
当我在Chrome中重复此操作时,我看到的值为None
。
如何确保Chrome中的值也正确?
Chrome版:51.0.2704.84
更新:我们注意到调试器似乎会影响此行为。当我们在Chrome开发者工具中将条件为false的parseCsdlSimpleProperty的第一行放置断点时,autogeneratedKeyType属性被正确设置为Identity。
请注意,在从parseCsdlDataProperty调用parseCsdlSimpleProperty时设置具有相同条件的断点不会产生相同的效果(autogeneratedKeyType设置为None)。