如何取消 RESTier 中未通过自定义验证逻辑的实体的更新?

how do I cancel an update for an entity in RESTier that fails custom validation logic?

我正在使用 RESTier 0.4.0-rc2。

使用 OnUpdating...如果实体未通过我的自定义验证逻辑,我将无法取消更新,并且 return 自定义错误。

使用 CanUpdate...我可以通过 returning false 取消更新,但是没有传入实体来应用我的自定义逻辑,也无法提供自定义错误。

似乎是一个根本性的缺陷,我是不是遗漏了什么?

即使你已经有了答案,我也想提供给别人。

If you want some customized logic for update validation, you can implement a class implements interface IChangeSetEntryValidator, validate in any logic you want, and then add logic like

DataModificationEntry dataModificationEntry = entry as DataModificationEntry;
var entity = dataModificationEntry.Entity;

 // Customized validate logic and if error, add a error validation result.
validationResults.Add(new ChangeSetValidationResult()
{
    Id = dataModificationEntry.EntitySetName+ dataModificationEntry.EntityKey,
    Message = "Customized error",
    Severity = ChangeSetValidationSeverity.Error,
    Target = entity
});

您可以在 here

找到完整的讨论