我有一个视图和一个具有1到0..1关系的表。如果表中有记录,一切正常,但我创建记录时遇到了麻烦。
以下是代码:
function orderVerified(order) {
if (order.approvals) {
order.approvals.isApproved = true;
} else {
datacontext.order.createApproval(order.id, order.type);
}
save(order);
}
function createApproval(id, type) {
return this.manager.createEntity("SalesOrdersApproval",
{id: id, type: type, isApproved: true});
}
这是有效的,如果记录不存在,我的数据库会按照我的预期更新。问题是当满足else条件并且我需要创建记录时我的UI没有更新。
我尝试将orderVerified函数更改为此但新行引发错误:
function orderVerified(order) {
if (order.approvals) {
order.approvals.isApproved = true;
} else {
var a = datacontext.eaorder.createApproval(order.id, order.type);
order.approvals = a; //this line throws the error below
}
save(order);
}
错误: 保存失败:无法更新EntitySet'vwEaSalesOrdersPickupsCombined',因为它具有DefiningQuery,并且元素中不存在支持当前操作的元素。
有什么建议吗?
答案 0 :(得分:0)
我在服务器上添加了这个,现在是
行order.approvals = a;
不再按预期抛出错误和我的UI更新。
protected override bool BeforeSaveEntity(EntityInfo entityInfo)
{
var entity = entityInfo.Entity;
if (entity is EaSalesOrdersPickupsCombined) //the name of the view
{
return false; //don't update
}
return true;
}