J'ai un cas (probable commun) où j'aimerais réutiliser la même classe à la fois pour ajouter une nouvelle entité et modifier une entité existante dans mon application Silverlight (SL4, WCF RIA, EF4, Linq-to-Entities). En ajoutant un nouveau, je voudrais que mon validateur personnalisé vérifie l'unicité et échoue si ce n'est pas unique. Cependant, lors de la modification, je ne souhaite pas que le même validateur empêche les modifications. Existe-t-il un moyen de désactiver temporairement la validation pour un seul champ (idéalement par type de validation afin que les autres validateurs puissent toujours fonctionner sur ce même champ)?Existe-t-il un moyen d'ignorer sélectivement la validation du champ silverlight lors de l'utilisation de wcf ria?
2
A
Répondre
1
Vous voudrez peut-être consulter les capacités de ValidationContext ici. Vous pouvez avoir des attributs de validation qui prennent des décisions en fonction des propriétés de l'entité ou de tout autre état que vous souhaitez fournir.
Regarde mes messages de blog sur Fournir ValidationContext et utilisation ValidationContext:
http://jeffhandley.com/archive/2010/10/25/RiaServicesValidationContext.aspx
http://jeffhandley.com/archive/2010/10/25/CrossEntityValidation.aspx
Hope this helps,
Jeff
D'accord, je l'ai appris à l'adresse http://www.nikhilk.net/RIA-Services-Validation.aspx que vous pouvez attacher des validateurs sur un oper ations. J'ai donc déplacé mon attribut validateur personnalisé des métadonnées de mon entité sur la méthode Insert du service. De cette façon, il est seulement appelé pour les insertions et pas les mises à jour - d'où la résolution de mon problème. Cependant, j'ai alors dû mettre un peu de logique dans le gestionnaire complété de l'opération de soumission pour marquer toute erreur traitée si c'est une erreur de validation. Cela semble redondant, cependant, donc si quelqu'un connaît un moyen de contourner ce dernier morceau, j'aimerais l'entendre! –