Sono stato aggiornato da Fluent Nhibernate 1.0 con Nhibernate 2.1 aversione 1.x con NHibernate 3.0 GA e ho colpito quello che penso sia una regressione, ma voglio sentire se è davvero così.Blob binario troncato a 8000 byte - SQL Server 2008/varbinary (max)
Sto usando SQL Server Express 2008 e il dialetto MSSQL 2008 e hanno una proprietà Immagine di tipo System.Drawing.Image e ho tracciato piace questo:
Map (food => food.Image)
.Length (int.MaxValue)
.Nullable();
La colonna Image
nel la tabella è di tipo varbinary(MAX)
.
La HBM generato per la proprietà è:
<property name="Image" type="System.Drawing.Image, System.Drawing,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<column name="Image" length="2147483647" not-null="false" />
</property>`
Tuttavia, non importa quello che faccio il blob binario viene troncato a 8000 byte quando serializzato con le attuali versioni FNH e NH. Quello non ha usato per essere il caso con le versioni precedenti.
Idee del motivo per cui questo sta accadendo e come risolverlo/soluzione alternativa?
Ho lo stesso problema con NHibernate 3.1.0.4000. Sto facendo qualcosa di sbagliato? – labilbe
Non lo so - io uso un patch 3.0 e non posso aggiornare a 3.1 per testare adesso a causa di altri deps su 3.0. La cosa più semplice sarebbe prendere il mio caso di test dal bug report, sostituire 3.0 con 3.1 e vedere se getta ancora. In tal caso dovremmo riaprire il difetto e temporaneamente è possibile utilizzare un UserType personalizzato per Image che impone la dimensione dei dati. –
Dopo ulteriori test, ho trovato che l'NH 3.1.0 non è più buggato. Stavo usando dati corrotti (salvati con 8000 byte) di un'altra versione, quindi ho avuto difficoltà a scoprire la causa del bug. È a posto adesso. Grazie! – labilbe