Ciao,
in un progetto molto vecchio ho aggiornato la versione di nhibernate all'ultima e sono passato al dialect 2008 dal 2005 e ho il seguente errore al salvataggio:
The length of the string value exceeds the length configured in the mapping/parameter.
In particolare:
[HibernateException: The length of the string value exceeds the length configured in the mapping/parameter.]
   NHibernate.Type.AbstractStringType.Set(IDbCommand cmd, Object value, Int32 index) in n:\nhibernate-core\src\NHibernate\Type\AbstractStringType.cs:23
   NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object value, Int32 index) in n:\nhibernate-core\src\NHibernate\Type\NullableType.cs:180
   ...
[PropertyValueException: Error dehydrating property value for MyAssembly.MyClass.Testo]
   NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object id, Object[] fields, Object rowId, Boolean[] includeProperty, Boolean[][] includeColumns, Int32 table, IDbCommand statement, ISessionImplementor session, Int32 index) in n:\nhibernate-core\src\NHibernate\Persister\Entity\AbstractEntityPersister.cs:2412
   NHibernate.Persister.Entity.GeneratedIdentifierBinder.BindValues(IDbCommand ps) in n:\nhibernate-core\src\NHibernate\Persister\Entity\AbstractEntityPersister.cs:109

La proprietà è dichiarata come:
<property name="Testo" type="System.String" column="Testo" not-null="false" />
Ho provato ad aggiungere length=4001 o stringclob senza risultati. La proprietà sul db è nvarchar(max. Il db è già presente e non viene ricreato ogni volta.
EDIT: sembra funzionare con length=8001. Qualcuno mi sa spiegare perché?
EDIT2: ora ho rimesso 4001 e continua ad andare...boh!
Modificato da manuel0081 il 27 ottobre 2014 11.30 -

Ormai programmano tutti... ma la professionalità appartiene a pochi
7 messaggi dal 24 marzo 2005
Ciao il thread è vecchissimo e forse non ti serve più...

Comunque basta che imposti
type="StringClob"

Il motivo è che è stata applicata una patch che solleva l'eccezione nel caso in cui la stringa superi il limite.
Usando il tipo "string" senza lunghezza, viene applicata di default la lunghezza 4000.

ciao e buon lavoro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.