Nous avons un tas de tables de recherche qui partagent toutes les mêmes colonnes (ID, code, description, etc) et mon co-travaillé m'a juste demandé si nous pouvions construire un fichier de mappage lookup.hbm.xml générique et l'utilise comme base pour toutes les autres tables de recherche. Le support nhibernate inclut-il des fichiers ou un autre moyen de référencer un fragment commun de XML? Je comprends que Fluent prend en charge l'héritage dans les classes de mappage, mais malheureusement, la commutation des technologies de cartographie n'est pas une option pour nous.pouvez-vous réutiliser les fichiers de mappage nhibernate pour les tables avec des colonnes communes
Q
pouvez-vous réutiliser les fichiers de mappage nhibernate pour les tables avec des colonnes communes
2
A
Répondre
2
Oui, vous pouvez utiliser XML external entities. Placez les champs communs dans un fichier XML et référencez-les dans d'autres fichiers XML en utilisant !ENTITY
. Par exemple:
<!DOCTYPE mappings [
<!ENTITY Address SYSTEM "xxx.Address.xml">
]>
Dans le XML pour la carte NHibernate vous importez ce en utilisant
&Address;
L'espace de noms complet (chemin) du fichier doit être utilisé. J'ai remarqué dans Visual Studio (2008 au moins) que s'il y a une erreur dans n'importe quel fichier et que vous avez un fichier XML ouvert qui utilise une référence externe, il signalera également une erreur.