如何为我的实体创建自定义验证

时间:2011-01-04 19:14:28

标签: asp.net-mvc-2 entity-framework-4 data-annotations

我想知道是否可以为我的用户实体创建自定义验证。

我想验证用户名是否唯一。 如果用户已经存在,我不想保存并显示警告。

我读到有关数据注释的继承,但我不确定我在做什么。

请帮忙。

感谢。

实体框架4 Asp.net MVC 2

1 个答案:

答案 0 :(得分:1)

是的,您可以创建自己的自定义属性类并验证实体。与此代码类似的东西,

    [AttributeUsage(AttributeTargets.Class)]
    public class DuplicateUserAttribute : ValidationAttribute
    {
    private const string _defaultErrorMessage = "user '{0}' Already exist";

    public DuplicateUserAttribute ()
        : base(_defaultErrorMessage)
    {
    }

    public override string FormatErrorMessage(string name)
    {
        return String.Format(CultureInfo.CurrentUICulture, ErrorMessageString);

    }

    public override bool IsValid(object value)
    {
        UserEntity NewUser = value as UserEntity;
        //Write here logic to validate the user is already exist in database like
        context.UserList.Where(u=>u.Name ==NewUser .UserName)
        return ;
    }
}

[DuplicateUser]
Class User
{
 …
}

CustomeAttribute

还有更多内容