如何取消 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
找到完整的讨论
我正在使用 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
找到完整的讨论