我正在使用 RESTier 0.4.0-rc2。
使用 OnUpdating... 如果实体未能通过我的自定义验证逻辑,我将无法取消更新并返回自定义错误。
使用 CanUpdate... 我可以通过返回 false 来取消更新,但是没有传入实体来应用我的自定义逻辑,也无法提供自定义错误。
似乎是一个基本缺陷,我错过了什么吗?
我正在使用 RESTier 0.4.0-rc2。
使用 OnUpdating... 如果实体未能通过我的自定义验证逻辑,我将无法取消更新并返回自定义错误。
使用 CanUpdate... 我可以通过返回 false 来取消更新,但是没有传入实体来应用我的自定义逻辑,也无法提供自定义错误。
似乎是一个基本缺陷,我错过了什么吗?
即使您已经有了答案,我也想将其提供给其他人。
如果你想要一些自定义的更新验证逻辑,你可以实现一个类实现接口 IChangeSetEntryValidator,在你想要的任何逻辑中进行验证,然后添加类似的逻辑
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
});
你可以在这里找到完整的讨论