2010-09-13 9 views
18

Mi esquema DB tiene una cadena como varchar (max). He leído el otro questions sobre la configuración de la longitud a más de 4000 u 8000 para que realmente genere un (varchar) (máximo) en la asignación, pero cuando uso longitud (10000) en mi clase de mapeo, el archivo hbm realmente muestra la longitud = "10000" y si guardo una entidad con más de 10000 caracteres, en realidad está truncado a exactamente 10000 caracteres.Cómo almacenar una cadena varchar (max) no truncada con NHibernate y Fluent NHibernate

No quiero ningún truncamiento.

(usando NH3-alfa 2 y el tronco FNH)

Respuesta

21

Parece que este es un problema antiguo que ahora está resurgiendo en NHibernate 3.x construye; Puede leer sobre las soluciones here.

Nota: He actualizado el enlace original que publiqué porque estaba desactualizado.

+4

Calling CustomType ("StringClob") lo hizo. Gracias. –

+0

Me ayudó también, gracias –

+0

En un archivo de mapeo hbm, simplemente use type = "StringClob" en lugar de type = "string" y listo. Esto definitivamente funciona para NH 3.3, pero pruébalo con cualquier versión de NH> = 3.0. – Oliver

17

Esta asignación debería funcionar:

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

sólo tiene que buscar el equivalente fluidez.

+2

¿Cree que alguna vez se tratará adecuadamente en NHib 3? Es triste ver que los detalles específicos del servidor sql se filtran en la asignación de esta manera ... – DanP

+0

@DanP ¿Puedes abrir un problema Jira? –

+0

Creo que ya hay uno: http://216.121.112.228/browse/NH-2302 Por cierto ... ¿le interesaría un nombre de dominio donado para la JIRA o algo así? Tener una URL basada en IP parece un poco ... inconveniente;) – DanP

Cuestiones relacionadas