2010-05-17 11 views
0

J'expérimente avec la conversion de mes fichiers de mappage NHibernate à FluentNHibernate. Cependant, je suis déjà coincé sur ma première tentative. Voici un fragment d'un fichier de mappage XML:Comment mapper un champ d'identité privée dans FluentNHibernate?

<class name="Contact" table="tblXContacts"> 
    <id  name="_id"    column="ContactID" unsaved-value="0" access="field"> 
    <generator class="identity"/> 
</id> 

La langue par défaut de parler couramment FluentNHibernate veut me forcer à utiliser les propriétés. Bien que j'expose une propriété ContactId de type sécurité à utiliser dans le code, je n'ai jamais réussi à obtenir que NHibernate accepte ce type de valeur comme Id, donc ma propriété publique construit un nouveau type de valeur à la volée. J'ai trouvé que dans mon ClassInfo FluentNHibernate, je peux accéder à l'IdMapping et manipuler ses propriétés directement (par exemple Name, Access) mais il y a beaucoup moins de documentation sur la façon de faire les choses en dehors des constructeurs courants. Par exemple, comment puis-je définir la colonne? Il y a "AddColumn (...)", mais il veut un ColumnMapping qui est où je commence à me perdre.

Répondre

2

Sur le wiki de fluentnhibernate, il existe de la documentation sur le mappage de membres privés: http://wiki.fluentnhibernate.org/Fluent_mapping_private_properties. Il s'agit de propriétés privées mais cela peut être utile.

+1

Ceci s'applique également aux champs. La page wiki n'a tout simplement pas été mise à jour pour refléter cela. –

+0

Malheureusement, même si cela décrit comment gérer les propriétés privées, cela ne semble pas couvrir la gestion des champs. – Trinition

+0

Avez-vous essayé d'utiliser Reveal avec votre domaine? Essayez-le, si cela ne fonctionne pas, faites de votre domaine une propriété privée – BenCr