我正在使用 DataAnnotations 和 Validation Attributes 执行验证。我正在使用 ADO NET 实体模型、域服务、RIA 服务、Silverlight,并且我的项目有一个在 ASP .NET 中的服务器端。
我想执行跨表验证,如何从 CustomValidation 方法访问实体表。
让我们用一个例子来解释。
假设我想在我的数据中避免两个同名的公司。
(我正在编辑这个问题,因为我不知道如何回复添加的评论。 这不是我真正需要的,我只是想从位于我的应用程序服务器端的自定义验证方法中访问数据。)
我装饰:
[CustomValidation(typeof(CustomValidatorType), "CompanyNameValidation")]
public string CustomerName { get; set; }
然后我的 CustomValidatorType 将是:
public static class CustomValidatorType {
public static ValidationResult CompanyNameValidation(string companyName,
ValidationContext validationContext) {
// How can I see if companyName is already present in Customers entity table?
if (*Company name already exists*) {
// How can I access the Customer Entity Table to check the Company Name existence?
return new ValidationResult("Comapny already exists.", new[] { "CustomerName" });
}
else
return ValidationResult.Success;
}
}
先感谢您
我最诚挚的问候
拉斐尔