唯一密钥约束验证MVC 4(Fluent API)

时间:2015-08-19 20:45:39

标签: c# asp.net-mvc fluent

我的项目分为控制器,模型,服务,参数和视图。
我没有使用EF。 我尝试使用此代码验证唯一键约束,但对于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;
}

如何更改代码以适应流利? 没有edmx。
没有上下文。

1 个答案:

答案 0 :(得分:0)

我假设您要删除foreach循环并使用更简洁的代码。可以使用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;