代码之家  ›  专栏  ›  技术社区  ›  Egil Hansen

如何在VAB中创建一个同时测试两个属性的自定义验证器?

  •  0
  • Egil Hansen  · 技术社区  · 16 年前

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Community CDub    8 年前

    诀窍是为实体创建验证器,而不是为实体的某个属性创建验证器。您可以对实体编写自我验证,如下所示:

    [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));
            }
        }
    }
    

    我必须说,我不熟悉vab3.1的特性集,所以我不能百分之百地肯定这在3.1上能起作用。不过,它在4.1版上也可以。如果您不喜欢自我验证,您还可以编写一个自定义验证器并将其连接到配置文件中。看看 this stackoverflow answer

    推荐文章