当我尝试保存两个相关实体时,Breeze EntityMananger会抛出异常。在与服务器进行任何通信之前,会抛出异常客户端。异常中的错误消息是“验证错误”,但在异常中列出的每个实体上调用EntityAspect.getValidationError()将返回一个空数组。
下面的屏幕截图显示了一个实例:
问题:有没有其他方法可以找出确切的验证问题是什么,或者这是一个错误?
谢谢你的时间!
答案 0 :(得分:1)
我找到了行为的原因。在重新抛出saveChanges()引发的异常之前,在EntityManager上为相关实体调用rejectChanges(),由上面示例中的代码处理。实体的错误状态不会保留在异常对象中,因此在调用rejectChanges()之后在每个实体上调用getValidationErrors()会返回一个空数组,因为此时更改已经回滚,并且技术上没有任何错误实体。
所以,技术上不是一个bug。微风按设计工作。但是,我认为有一个论点要求在saveChanges()失败时传递的异常对象应包含导致异常的问题的完整且不可变的描述。