如何在 saveChanges 失败函数中使用 Breeze 管理器在客户端(如 sql raiserror 级别)获取 Sql Server 数据库错误详细信息。例如 :
// SERVER-SIDE (SQL-SERVER : TRIGGER - After Insert)
RAISERROR ('Espace utilise par Place, Cannot delete.', 16, 1)
ROLLBACK TRAN
RETURN
// CLIENT-SIDE (BREEZE : saveChanges - saveFailed)
var saveChanges = function () {
.....
function saveFailed(error) {
var msg = 'Save failed: ' + getErrorMessages(error);
logError(msg, error);
error.message = msg;
throw error;
}
};
更新 1:好的,在将我的微风版本更新到 1.4.1 后,我在客户端收到了错误详细信息,但是:
a) 应用程序在服务器端(Breeze 控制器 Api)停止,在下面的代码点出现 InvalidOperationException,没有分配任何调试断点。
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return _contextProvider.SaveChanges(saveBundle);
}
b)如果我强制它继续,我会在 Breeze saveChanges saveFailed 级别的客户端收到错误。如何管理此错误以绕过 Breeze 服务器端 api 控制器错误处理程序,但在客户端继续拥有相关信息?
在等待足够的答案时,我试图在 BeforeSaveEntities 范围内报告这些业务规则。但是禁止使用所有触发器规则来代替 BeforeSaveEntities 会很痛苦:它们没有相同的功能。