In questi giorni sto utilizzando una funzionalità piuttosto interessante di NHibernate, ovvero la possibilità di mappare un domain model "dinamico" tramite dynamic-component.
Questa funzionalità permette di mappare in modo speciale alcune colonne di una tabella di un entità, infatti al posto di utilizzarle come singole proprietà vengono inserite in un dictionary (possono essere sia tipo semplici che vere e proprie entity).

Qui un link che mostra il funzionamento :

http://ayende.com/Blog/archive/2009/04/11/nhibernate-mapping-ltdynamic-componentgt.aspx

Qui invece un link che  mostra come modificare la configurazione senza agire sul file di mapping, ma editando "on-the-fly" prima che la session-factory venga creata:

http://www.junasoftware.com/blog/custom-domain-using-nhibernate-dynamic-component.aspx

Ad un primo sguardo può sembrare un comportamento particolare, ma può venire in aiuto quando si gestisce un sistema "modulare" dove uno dei requisiti è quello di creare plugin indipententi fra di loro, senza agire sul "core" del sistema.
In questo modo ci è possibile estendere una entity aggiungendo delle proprietà custom che non sono conosciute all'interno del modulo base, ma vengono gestite unicamente nel plugin dedicato.