Realmente Luis, tentei usar um compare no model, porem quando temos que alterar um dado daquele cliente, começa a surgir outros problemas
A ideia era
[Required]
[Compare("EmailBanco", ErrorMessage="Email já cadastrado")]
[EmailAddress(ErrorMessage = "Email incorreto")]
public string Email { get; set; }
[NotMapped]
public string EmailBanco {
get {
DContext db = new DContext();
if(db.Usuarios.FirstOrDefault(x => x.Email == this.Email) == null)
{
return Email;
}
else
{
return "";
}
}
A solução
if (db.Usuarios.FirstOrDefault(x=>x.Email == usuario.Email) != null)
{
ModelState.AddModelError("usuario.Email", "Email já cadastrado");
}
e na View
@Html.ValidationMessage("usuario.Email", new { @class = "text-danger" })