我正在寻找帮助,试图在成功hasChanges
返回后查找saveChanges
的错误。我将一个实体和嵌套实体一起保存,当它返回时,我的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
}
答案 0 :(得分:0)
需要更多详情。
什么是服务器技术?
你的saveChanges
电话是什么?您是否指定了要保存的实体或要求保存整个缓存?
在调试会话中,捕获您要保存的实体列表(manager.getChanges()
),并将它们与响应中的saveResult.entities
进行比较;是否缺少任何实体?
保存后未保存的实体有什么值得注意的吗?
答案 1 :(得分:0)
任何时候你看到一个函数的返回值代替一个实体,你的元数据有问题是个好消息;通常与您的某个导航属性的定义有关。你可以发布Person和PersonAddresses的元数据吗?