唯一键约束验证 MVC 4(流畅 API)
Unique Key Constraint Validation MVC 4 (Fluent API)
我的项目分为控制器、模型、服务、参数和视图。
我不使用 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.
没有上下文。
我假设您想删除 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;
我的项目分为控制器、模型、服务、参数和视图。
我不使用 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.
没有上下文。
我假设您想删除 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;