J'ai un 4 application web en couches programmé en C# ... .Net 4.0:Utilisation EF les classes POCO comme modèles MVC 2 (avec annotations de données)
- UI couche
- couche d'affaires
- données accès couche
- entités couche
Ma couche de données contient une couche edmx Ma entités contient mes objets POCO (généré par un script t4), et cette couche est référencée dans toutes les autres couches. Lors de la création d'un formulaire MVC pour créer un nouveau client, par exemple .... J'ai déjà la classe client avec des champs pour le prénom, le nom, etc. dans ma couche d'entités, mais cette classe POCO auto-générée ne pas avoir d'annotations de données pour la validation ... IE [Obligatoire], etc. lorsque le formulaire est soumis
Ma solution consiste à créer de nouvelles classes de modèle qui sont à peu près les mêmes que mes classes poco mais qui ont aussi ces annotations de validation supplémentaires. Ce que je veux savoir, c'est s'il existe un moyen facile d'utiliser certains objets POCO dans le modèle MVC (dans la couche UI) sans avoir à réécrire presque la classe ... et aussi sans modifier le t4 qui génère ces POCO classes (puisque je ne suis pas à la vitesse sur t4).
J'ai vu cela à partir d'un autre post sur stackoverflow http://automapper.codeplex.com/ ... pas sûr si cela va le faire ou est la meilleure solution.
nouvelles choses ... si c'est une bonne solution, alors je vais l'apprendre, mais ce qui me préoccupe, c'est si ces annotations affecteront d'autres domaines du programme qui n'en ont pas besoin. –
@Chris: Les annotations ne devraient pas du tout affecter d'autres parties du programme. Ce ne sont que des attributs (méta-données attachées à une classe/méthode/etc) que le programme peut éventuellement lire s'il le souhaite. La seule exception à laquelle je peux penser est si vous ciblez un runtime limité (par exemple le CLR Silverlight) qui manque certaines méthodes. Dans ce cas, vous pouvez utiliser '#if! SILVERLIGHT' pour cacher ces attributs à Silverlight. –