Search code examples
c#asp.net-mvcfluent

Unique Key Constraint Validation MVC 4 (Fluent API)


My project is divided in Controller, Models, Services, Parameters and Views.
I don't use EF. I try use this code for validate Unique Key Constraint, but for the EF.

public static ValidationResult IsUserNameUnique(object username, ValidationContext context)
{
            ADMINEntities x = new ADMINEntities();
            var users = from u in x.Users
                        select u;
            foreach (var item in users)
            {
                if (item.Username == username.ToString())
                {
                    return new ValidationResult("Username is already choosen, please choose another one.");

                }
            }
            return ValidationResult.Success;
}

how to i change the code to suit fluent?
No have edmx.
No have Context.


Solution

  • I assume, that you want to remove the foreach loop and have a more succinct code. An equivalent, but shorter query could be written using the FirstOrDefault extension:

    var x = new ADMINEntities();
    var usersExists = x.Users.FirstOrDefault(u => u.Username == username.ToString());
    return usersExists != null
                ? new ValidationResult("Username is already choosen, please choose another one.")
                : ValidationResult.Success;