J'ai un utilisateur de classe qui a un attribut Nom qui doit être unique. Jusqu'à présent, j'ai fait enquête sur 3 façons de vérifier ceci:Meilleur moyen de contrôler l'unicité d'un attribut en utilisant le code EF Premier
Annotations
[StringLength(100)] [Index(IsUnique = true)] public string Name { get; set; }
Le problème est, en tentant d'insérer un utilisateur avec un nom répété jette cette ex: comme je peux le voir, je devrais naviguer dans les exceptions internes (que je ne sais pas si c'est possible, mais je suppose que c'est le cas) et le dernier message d'exception interne n'est pas convivial du tout.
- Api Courant
https://stackoverflow.com/a/23155759/5750078
Je havent essayé, mais je crois qu'il est a le même problème que les annotations.
- Vérifier la main
code du contrôleur:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Name,Password,Profile")] User user)
{
if (ModelState.IsValid)
{
lock (locker)
{
validateNameUnicity();
db.Users.Add(user);
db.SaveChanges();
}
return RedirectToAction("Index");
}
return View(user);
}
Problème: le contrôle dépend de mon code, qui peut ne pas être aussi précis que checkings de base date. En outre, je vais devoir programmer plus de logique que les deux autres options. Et enfin, mais si j'accède à la base de données directement, il n'y aura pas de contrôle du tout.
J'ai besoin de savoir quelle est la meilleure pratique pour le faire, parce que j'essaie d'apprendre par moi-même, et j'aimerais faire les choses le mieux possible.