寻找保存结果错误
Hunting Down Save Result Bug
我正在寻求帮助,试图找出一个错误,在从成功的 saveChanges
返回后 hasChanges
仍然为真。我将实体和嵌套实体保存在一起,当它 returns 时,我的 saveResult
显示为一个数组,第一个对象显示父实体,第二个对象是 $ref
。然而,我的一位 entityGroups
说它仍然有变化,所以它就像需要再次保存一样。
一件有趣的事情是,我保存了一个不同的集合和一个不同的嵌套实体,它返回嵌套实体作为 saveResult
数组中的第一个对象,而我的父实体是 $ref
.我尽力确保两个嵌套实体模型看起来相同。如果有人有任何想法或建议,我很乐意尝试并希望能解决这个问题。
{
"$id":"1",
"$type":"Breeze.ContextProvider.SaveResult, Breeze.ContextProvider",
"Entities":[
{
"$id":"2",
"$type":"CoreDBCodeFirst.Person, CoreDBCodeFirst",
"LastName":"Washington",
"FirstName":"George",
"MiddleName":null,
"SocialSecurity":null,
"DateOfBirth":"1974-12-10T06:00:00.000Z",
"Gender":"M",
"Language":"en-US",
"IdNumber":null,
"Eligibility":true,
"Active":true,
"PersonAddresses":[
{
"$id":"3",
"$type":"CoreDBCodeFirst.PersonAddress, CoreDBCodeFirst",
"Address1":"13000 S Dakota 244",
"Address2":null,
"Zip":"57751",
"City":"Keystone",
"State":"SD",
"IsPrimary":false,
"Active":true,
"PersonId":20118,
"Person":{
"$ref":"2"
},
"id":20108
}
],
"FullName":"Washington, George",
"Email":null,
"id":20118
},
{
"$ref":"3"
}
],
"KeyMappings":[
{
"$id":"4",
"$type":"Breeze.ContextProvider.KeyMapping, Breeze.ContextProvider",
"EntityTypeName":"CoreDBCodeFirst.Person",
"TempValue":-1,
"RealValue":20118
},
{
"$id":"5",
"$type":"Breeze.ContextProvider.KeyMapping, Breeze.ContextProvider",
"EntityTypeName":"CoreDBCodeFirst.PersonAddress",
"TempValue":-2,
"RealValue":20108
}
],
"Errors":null
}
需要更多详细信息。
什么是服务器技术?
你的 saveChanges
电话是什么?您是指定要保存的实体还是要求保存整个缓存?
在调试会话中,捕获您正在保存的实体列表 (manager.getChanges()
) 并将它们与响应中的 saveResult.entities
进行比较;是否缺少任何实体?
保存后未保存的实体有什么特别之处吗?
只要您看到函数的 return 值代替了实体,很可能您的元数据有问题;通常与您的导航属性之一的定义有关。你能post Person 和 PersonAddresses 的元数据吗?
我正在寻求帮助,试图找出一个错误,在从成功的 saveChanges
返回后 hasChanges
仍然为真。我将实体和嵌套实体保存在一起,当它 returns 时,我的 saveResult
显示为一个数组,第一个对象显示父实体,第二个对象是 $ref
。然而,我的一位 entityGroups
说它仍然有变化,所以它就像需要再次保存一样。
一件有趣的事情是,我保存了一个不同的集合和一个不同的嵌套实体,它返回嵌套实体作为 saveResult
数组中的第一个对象,而我的父实体是 $ref
.我尽力确保两个嵌套实体模型看起来相同。如果有人有任何想法或建议,我很乐意尝试并希望能解决这个问题。
{
"$id":"1",
"$type":"Breeze.ContextProvider.SaveResult, Breeze.ContextProvider",
"Entities":[
{
"$id":"2",
"$type":"CoreDBCodeFirst.Person, CoreDBCodeFirst",
"LastName":"Washington",
"FirstName":"George",
"MiddleName":null,
"SocialSecurity":null,
"DateOfBirth":"1974-12-10T06:00:00.000Z",
"Gender":"M",
"Language":"en-US",
"IdNumber":null,
"Eligibility":true,
"Active":true,
"PersonAddresses":[
{
"$id":"3",
"$type":"CoreDBCodeFirst.PersonAddress, CoreDBCodeFirst",
"Address1":"13000 S Dakota 244",
"Address2":null,
"Zip":"57751",
"City":"Keystone",
"State":"SD",
"IsPrimary":false,
"Active":true,
"PersonId":20118,
"Person":{
"$ref":"2"
},
"id":20108
}
],
"FullName":"Washington, George",
"Email":null,
"id":20118
},
{
"$ref":"3"
}
],
"KeyMappings":[
{
"$id":"4",
"$type":"Breeze.ContextProvider.KeyMapping, Breeze.ContextProvider",
"EntityTypeName":"CoreDBCodeFirst.Person",
"TempValue":-1,
"RealValue":20118
},
{
"$id":"5",
"$type":"Breeze.ContextProvider.KeyMapping, Breeze.ContextProvider",
"EntityTypeName":"CoreDBCodeFirst.PersonAddress",
"TempValue":-2,
"RealValue":20108
}
],
"Errors":null
}
需要更多详细信息。
什么是服务器技术?
你的 saveChanges
电话是什么?您是指定要保存的实体还是要求保存整个缓存?
在调试会话中,捕获您正在保存的实体列表 (manager.getChanges()
) 并将它们与响应中的 saveResult.entities
进行比较;是否缺少任何实体?
保存后未保存的实体有什么特别之处吗?
只要您看到函数的 return 值代替了实体,很可能您的元数据有问题;通常与您的导航属性之一的定义有关。你能post Person 和 PersonAddresses 的元数据吗?