2010-09-13 16 views
18

Lo schema del mio DB ha una stringa come varchar (max). Ho letto l'altro questions relativo all'impostazione di Lunghezza a più di 4000 o 8000 in modo che generi realmente un (n) varchar (max) nella mappatura ma quando uso Lunghezza (10000) nella mia classe di mappatura, il file hbm mostra effettivamente la lunghezza = "10000" e se salvi un'entità con più di 10000 caratteri, viene in realtà troncato esattamente a 10000 caratteri.Come memorizzare una stringa varchar (max) non troncata con NHibernate e Fluent NHibernate

Non voglio alcun troncamento.

(usando NH3-alfa2 e tronco FNH)

risposta

21

Sembrerebbe che questo è un vecchio problema che sta riemergendo in NHibernate 3.x costruisce; puoi leggere le soluzioni alternative here.

Nota: Ho aggiornato il collegamento originale che ho postato perché non aggiornato.

+4

Calling CustomType ("StringClob") lo ha fatto. Grazie. –

+0

Aiutami pure, grazie –

+0

In un file di mappatura hbm, usa semplicemente type = "StringClob" invece di type = "string" e il gioco è fatto. Questo funziona sicuramente per l'NH 3.3, ma provalo con qualsiasi versione di NH> = 3.0. – Oliver

17

Questa mappatura dovrebbe funzionare:

<property name="TheProperty" type="StringClob"> 
    <column name="TheColumn" sql-type="nvarchar(max)" /> 
</property> 

Basta guardare per l'equivalente fluente.

+2

pensi che questo sarà mai trattato correttamente in NHib 3? Un po 'triste per vedere i dettagli specifici del server sql filtrare nella mappatura come questa ... – DanP

+0

@DanP puoi aprire un problema con Jira? –

+0

Credo che ce ne sia già uno: http://216.121.112.228/browse/NH-2302 Per inciso ... ti interesserebbe un nome di dominio donato per la JIRA o qualcosa del genere? Avere un URL basato su IP sembra un po '... scomodo;) – DanP

Problemi correlati