Search code examples
nhibernatenhibernate-mappingmappingpropertieshbm

NHibernate Property Mapping, best practise for type attribute?


I have a little doubt for mapping of property in hbm file.

Sometimes I've mapped the string field of my db in this way:

<property name="MyPropName" column="MyColumnName" length="20" />

but the same mapping can be wrote in this way:

<property name="MyPropName" column="MyColumnName" type="String(20)" />

my question is...what's the better way?

If I omit "type" attributes for property tags it works, but I don't know if there are some contraindications. Can you tell me?

And last thing...are right this associations?

db varchar fields -> type "AnsiString"

db nvarchar fields -> type "String"


Solution

  • The "best practice" is to only override the defaults. So, for your example, the first form would be the best.

    As for the second question: yes, they are correct.

    You can find all the value types and default mappings here: 5.2.2. Basic value types