我正在尝试在微风中修改实体并调用saveChanges()。但是我的微风管理器中的实体保存为 0。我不确定我做错了什么。
以下是我通过控制器检索数据的方法:
[HttpGet]
[CustomAuthorize(Claims = "permission:CanViewLocationAttributes")]
public Location GetLocationById(int clientId, int locationId)
{
//returns a single location object
}
然后我显示位置对象的属性,修改它并尝试更改如下:
function saveLocationSettings(clientId) {
var self = this;
var saveOptions = this.manager.saveOptions.using({ resourceName: "SaveLocationSettings", allowConcurrentSaves: true });
var entitiesToSave = self.manager.getChanges();
return self.manager.saveChanges(entitiesToSave, saveOptions).then(saveSucceeded, saveFailed);
}
在这里,当我检查实体ToSave时,它是0。不包括更改的实体。
知道这里出了什么问题吗?
您确定要更改的实体与您保存的实体位于同一实体管理器中吗?还要记住,如果您将实体的属性"设置"为其当前值,则 breeze 将忽略该更改。
确认这两者的一种简单方法是在更改实体后检查实体的"entityAspect.entityState"(它应该是"修改"),然后检查"entityAspect.entityManager"以查看它是否与您计划保存的实体管理器相同。