为什么breeze继续投掷'启用manager.enableSaveQueuing(true)选项时不允许并发保存
答案 0 :(得分:1)
只是因为您尝试同时发出多次保存。 Breeze的默认保存选项是排队数据以进行保存。 在您的情况下,您可以覆盖允许并发保存的选项,如下所示:
var so = new breeze.SaveOptions({allowConcurrentSaves: true})
return manager.saveChanges(null,so)
.then(saveSucceeded) //
.fail(saveFailed);
修改强>
因为你正在使用" saveQueuing"插件,忽略我的第一个答案,因为它只适用于并发保存。
我不知道你的代码是如何工作的,但是在保存队列的情况下你可能需要考虑一些事项:
manager.saveChanges()
。在服务器端,为了新BeforeSaveEntity()
方法中的互斥锁定语句,覆盖savechanges()
方法,您的代码可能如下所示:
public void SaveChanges(SaveWorkState saveWorkState)
{
lock (__lock) // this will block any try to issue concurrent saves on the same row
{
// Saving Operations goes here
}
}
您可能希望在NoDB示例中查看它。