Vous pouvez utiliser l'attribut MetadataType de votre classe:
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.metadatatypeattribute.aspx
Dans la pratique, j'ai vu les métadonnées désynchronisés avec un assez souvent modèle généré, mais, ce qui peut conduire à des maux de tête. Vous souhaiterez peut-être examiner un autre mécanisme de validation au lieu des annotations de données.
J'ai utilisé Fluent Validation, qui est très facile à prendre en main et à utiliser. Il y a même un élément d'intégration Fluent Validation to xVal dans Fluent Validation 2.0 (toujours en version bêta) que vous pouvez intégrer dans votre projet pour la validation côté client. Fluent Validation vous permet de définir votre validation dans une classe distincte.
Tout ce que vous devez faire est d'ajouter un attribut à votre classe générée en lui disant quel validateur utiliser, ce qui pourrait être accompli par des classes partielles. Vous pouvez également créer des modèles spécifiques à la vue mappés à partir de votre modèle de domaine contenant vos annotations de données. Dans ce cas, simplifiez le mappage de va-et-vient en utilisant quelque chose comme AutoMapper. Ensuite, si votre modèle de domaine change, vous obtenez des erreurs de compilation par rapport à l'approche des métadonnées.
Vous pouvez utiliser MyModelMetadata partielle de classe publique car vous ciblez souvent des partiels sur Entity Framework/LINQ to SQL ... même si ce n'est pas agréable d'avoir un code de sortie distinct. –
Merci. C'est exactement ce que je recherche Puis-je aussi faire cela pour ajouter des attributs de sérialisation aux classes générées? Ou est-ce que le MVC est spécifique? Et quand vous dites que la classe de métadonnées doit avoir les mêmes propriétés, cela signifie-t-il –
Les attributs DataAnnotation sont complètement indépendants de MVC, ils ne sont que l'une des nombreuses façons de gérer la validation, et le classeur par défaut MVC2 les utilise par défaut. Vous n'avez pas besoin d'avoir toutes les propriétés du modèle - seules celles qui ont besoin d'être annotées sont nécessaires.Que voulez-vous dire par attributs de sérialisation? – PanJanek