Как создать пользовательскую проверку для моих сущностей - PullRequest
0 голосов
/ 04 января 2011

Я хотел бы знать, возможно ли создать пользовательскую проверку для моей пользовательской сущности.

Хочу проверить, уникально ли имя пользователя. Если пользователь уже существует, я не хочу его сохранять и показывать предупреждение.

Я читаю о наследовании аннотации данных, но я не уверен в том, что я делаю.

Пожалуйста, помогите.

Спасибо.

Entity-Framework 4
Asp.net MVC 2

1 Ответ

1 голос
/ 04 января 2011

Да, это возможно, вы можете создать свой собственный класс пользовательских атрибутов и проверить сущность. Нечто похожее на этот код,

    [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

...