NHibernate has the concept of a User Type. It allows you to specify how a custom type should be mapped between your object model and the database.
An example of an out-of-the-box User Type is the YesNo type. This type allows you to map (“Y”/”N”) values in your database to boolean values in your application. To use this in your application you only need to specify a type in your mapping file:
<property name="IsActive" type="YesNo"/>
For a project I’m working on, I had a similar requirement, but because the application was in Dutch I had to use “J”/”N” instead of “Y”/”N”.
So let’s build our own User Type to achieve this. The nice thing is that I don’t have to start from scratch but can extend one of the existing User Types:
To use this type in our application, we have to change the mapping to:
<property name="IsActive" type="NHibernate.JaNeeType,Sample.NHibernate"/>