【发布时间】:2015-04-09 03:06:21
【问题描述】:
所以我目前正在开发一个使用 Entity Framework、Breeze 和 Angular 的项目,但现在我陷入了困境。我检索一个实体,更改一个属性,然后尝试保存它。但即使 EntityState 表明它已被修改,它也不会保存。
所以我猜由于某种原因它失去了与 Breeze 或其他东西的绑定。我所做的更改会反映在页面上,所以我认为 Angular 仍然“看到”它。
这是来自我的控制器的相关代码:
trService.getProposalById($route.current.params.Id)
.then(function (query) {
$scope.proposal = query.results[0];
trService.getTrById($scope.proposal.TrID)
.then(function (query) {
$scope.itinerary = query.results[0];
})
.then(function (query) {
//Something irrelevant
});
});
在这之后检查 $scope.proposal 表明它是一个实体(ctor.proto 事物)。然后是我在批准/保存时的功能:
$scope.onApproveConfirm = function () {
console.log("Before: " + $scope.proposal.entityAspect.entityState.name);
$scope.proposal.IsApproved = 2;
console.log("After: " + $scope.proposal.entityAspect.entityState.name);
trService.saveChanges($scope.proposal, undefined, function (result) {
console.log("Saved: " + result.entities.length);
}, function () {
console.log("Save failed");
});
};
控制台中的输出如下所示:
Before: Unchanged
After: Modified
Saved: 0
我对所有其他实体使用 saveChanges 没有任何问题。在我检索提案和更改 IsApproved 属性之间的代码中,我从不访问它。那么任何人都可以从中看出哪里出了问题吗?如果您需要任何其他信息,我很乐意提供。
另外,如果我在检索到它确实保存的提案后直接输入保存代码。
【问题讨论】:
标签: angularjs entity-framework breeze