【问题标题】:How do I create a custom validator in VAB that tests two properties at once?如何在 VAB 中创建一个同时测试两个属性的自定义验证器?
【发布时间】:2008-12-06 15:32:09
【问题描述】:

在我的数据库中,我有一个实体上的复合唯一键约束(CustomerId、Name)。我想在向数据库提交更改之前测试是否支持唯一约束。用户可以自定义实体上的 Name 属性,因此我想制作一个自定义验证器来验证 name 属性,但是在执行此操作时,我还需要访问 CustomerId 属性。我该怎么做?

我正在使用 WCSF,这意味着我被困在 Entlib 3.1 和包含的 VAB 中,但我想可以在不破坏 WCSF 的情况下切换到 EntLib 4.1 的 VAB。

问候,埃吉尔。

【问题讨论】:

    标签: asp.net validation enterprise-library wcsf validation-application-bl


    【解决方案1】:

    诀窍是为您的实体创建验证器,而不是为该实体的属性之一。您可以按如下方式在您的实体上编写自我验证:

    [HasSelfValidation]
    public class MyEntity
    {
        public int CustomerId { get; set; }
        public string Name { get; set; }
    
        [SelfValidation]
        public void ValidateRange(ValidationResults results)
        {
            bool isUnique = [query the database here]
    
            if (!isUnique)
            {
                results.AddResult(new ValidationResult(
                    "CustomerId and Name are not unique", this, "", "", null));
            }
        }
    }
    

    我必须说我不熟悉 VAB 3.1 的功能集,所以我不能 100% 确定这适用于 3.1。但它适用于 4.1。如果您不喜欢自我验证,您还可以编写自定义验证器并将其连接到配置文件中。查看this stackoverflow answer 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2013-01-17
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多