首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VAB中创建一个同时测试两个属性的自定义验证器?

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

Stack Overflow用户
提问于 2008-12-06 15:32:09
回答 1查看 684关注 0票数 0

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

我正在使用WCSF,这意味着我被困在Entlib3.1和包含的VAB中,但我猜有可能在不破坏WCSF的情况下切换到Entlib 4.1的VAB。

问候你,埃吉尔。

EN

回答 1

Stack Overflow用户

发布于 2010-02-19 21:41:56

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

代码语言:javascript
复制
[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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/346391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档