2010-08-12 5 views
1

Dans mon projet, j'ai plusieurs classes avec des propriétés qui devraient être uniques, et je veux écrire un attribut personnalisé qui peut être utilisé sur toutes les propriétés. Par exemple, j'ai la classe utilisateur avec le nom d'utilisateur de la propriété et l'application de la classe avec le nom de la propriété qui doit être unique et je veux être en mesure de le faire:Attribut de validation unique MVC 2

[Unique(ErrorMessage = "Username alreadey exists")] 
public string username {get;set;} 

[Unique(ErrorMessage = "Name alreadey exists")] 
public string name {get; set;} 

Quelqu'un peut-il s'il vous plaît dire comment faire?

Répondre

-1

Étant donné que les propriétés sont uniques par contexte, vous devez vérifier l'unicité dans la fonctionnalité d'ajout du contexte. En d'autres termes, cet attribut ne doit rien faire lorsque vous créez une instance aléatoire de votre objet, mais la collection que vous ajoutez doit vérifier les propriétés qui ont l'attribut Unique et vérifier que la nouvelle entité satisfait ces contraintes ou les rejeter.

+0

J'utilise framework d'entité de sorte que chacune de ces propriétés représente une colonne dans la base de données, et UniqueAttributeValidator devrait vérifier si la valeur de la propriété est unique dans la base de données – Filip

+0

Donne-moi le codez? –

+0

Comme indiqué ci-dessus, EF mappe les classes en tables et les propriétés de classe en colonnes. Je ne comprends pas ce que "Puisque les propriétés sont uniques par contexte" signifie vraiment dans le contexte de base de données mentionné ci-dessus. Cette question concerne la création d'un attribut de validation personnalisé qui vérifie les valeurs d'unicité dans les colonnes. – Celdor

Questions connexes