Se si ha una colonna CHAR(n) o VARCHAR(n) dove n > 1 occorre definire esplicitamente il type AnsiString(n). Se abbiamo un CHAR(1) possiamo usare AnsiChar; Se si ha una colonna NCHAR(n) o NVARCHAR(n) dove n > 1 occorre definire il type String(n). Se abbiamo un NCHAR(1) possiamo usare Char. Se la proprietà è stringa "String" è il valore di default quindi è da usare esplicatemente se vogliamo specificarne la lunghezza.
Se non si specifica il "type" NHibernate deciderà di trattarlo come NVARCHAR(4000) - la cosa la si può vedere profilando i comandi -... e questo a fini delle performance è molto molto male!
Mi piacerà indicare con "gioco della superficie di contatto" il rapporto tra il numero delle funzionalità che un component espone al consumer e il numero dei casi d'uso che il componente risolve al consumer stesso. (continua)