保存后Breeze不会更新。查看与表的1到0..1关系

时间:2014-04-10 13:23:04

标签: entity-framework breeze

我有一个视图和一个具有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,并且元素中不存在支持当前操作的元素。

有什么建议吗?

1 个答案:

答案 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;
    }