2010-03-08 10 views
0

Je vais avoir un problème dans la cartographie d'un membre de la classe de données existantes à la base de données ..propriétés calculées dans NHibernate

J'ai une table de base de données où l'une des colonnes est un type de chaîne, mais stocke en fait séparées par une virgule liste des nombres. Ma classe de données affiche ce champ sous la forme d'une liste d'entiers. Le problème est que je n'ai trouvé aucun hook dans NHibernate qui me permet d'appeler le code personnalisé requis pour remplacer le champ string par la liste et vice versa.

Pour illustrer (simplifié bien sûr):

La table de base de données:

CREATE TABLE dummy (
    id serial, 
    numlist text -- (can store values such as '1,2,3') 
) 

La classe de données:

class Dummy { 
    public int Id; 
    public List<int> NumbersList; 
} 

Quelqu'un peut-il aider?

Répondre

1

Mappez la colonne en tant que NHibernate.UserTypes.IUserType.

<class name="Dummy"> 
    <property name="NumbersList" type="mynamespace.MyIntListType, mydll" /> 
</class> 

Quelques exemples de IUserType:

+0

Merci. Après avoir vu votre réponse, je l'ai googlé sur le site Web nhforge et y ai trouvé les informations pertinentes (http://nhforge.org/blogs/nhibernate/archive/2009/10/15/mapping-different-types-iusertype.aspx) –

Questions connexes