He actualizado de Fluent Nhibernate 1.0 con Nhibernate 2.1 a pre versión 1.x con NHibernate 3.0 GA y he alcanzado lo que creo que es una regresión, pero quiero saber si ese es realmente el caso.Blob binario truncado a 8000 bytes - SQL Server 2008/varbinary (max)
Estoy utilizando SQL Server Express 2008 y el dialecto MSSQL 2008 y tienen una propiedad Imagen de tipo System.Drawing.Image y me han asignado como si fuera esto:
Map (food => food.Image)
.Length (int.MaxValue)
.Nullable();
La columna Image
en el la tabla es del tipo varbinary(MAX)
.
El HBM generada por la propiedad es:
<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>`
Sin embargo, no importa lo que haga el blob binario se trunca a 8000 bytes cuando serializado con las actuales versiones FNH y NH. Eso no usó para ser el caso con versiones anteriores.
¿Ideas de por qué sucede esto y cómo solucionarlo/solucionarlo?
Tengo el mismo problema con NHibernate 3.1.0.4000. ¿Estoy haciendo algo mal? – labilbe
No sé - Utilizo un parche 3.0 y no puedo actualizar a 3.1 para probarlo ahora debido a otras deps en 3.0. Lo más fácil sería sacar mi caso de prueba del informe de fallas, reemplazar 3.0 por 3.1 y ver si aún lo lanza. Si lo hace, deberíamos reabrir el defecto y temporalmente puede usar un UserType for Image personalizado que fuerza el tamaño de los datos. –
Después de más pruebas, encontré que NH 3.1.0 ya no tiene errores. Estaba usando datos corruptos (guardados con 8000 bytes) de otra versión, luego tuve dificultades para descubrir la causa del error. Ahora está bien. ¡Gracias! – labilbe