Hola Edgar,

Por mi ya esta bien, sugiero que no te metas en mas complicaciones y dejes
el VARCHAR(60) o algo mas abreviado, como sugiere Jose (el cordobes
apurado), la solucion optima seria colocar un CHAR(3) y asegurarte de que
todos los discriminadores ocupen 3 caracteres (total ese valor no lo ves mas
que en el mapeo y podrias cambiarlo en el futuro sin impacto en tu
aplicacion).

El usertype que sugiere Fabio lo dejaria para mas adelante como un technical
debt (deuda tecnica: algo que por ahora funciona pero que seria bueno
mejorar en el futuro).

Muchas gracias

----------------------------------
Carlos Peix

2010/1/12 Edgar Ramos <[email protected]>

> el discriminador puse de tipo   <discriminator column="Tipo"
> type="AnsiString(60)"/>, pero el error volvio a aparecer,  si me
> ayudas Carlos que mas tengo que hacer para probar
>
> voy a chequear el link de Fabio
>
> El día 12 de enero de 2010 13:59, Edgar Ramos <[email protected]>
> escribió:
> > este momento hago las pruebas, desde luego no faltaba mas
> >
> > cambio el campo a char(60), y en el archivo de mapeo hago
> > type="AnsiStringFixedLength(60)" verdad  !!!
> >
> > El día 12 de enero de 2010 13:01, Carlos Peix <[email protected]>
> escribió:
> >> Bueno, pero me basta con que NH no se confunda porque el graba un
> "0123456"
> >> y luego busca lo mismo cuando haces el query de una subclase pero, desde
> la
> >> base, le vuelve un "0123456    ".
> >> Si NH, internamente, hace algun "".Equals(), sonamos. Me imagino que no
> >> porque, caso contrario, nos habriamos enterado.
> >> Edgar, en retribucion a la comunidad, podrias cambiar el tipo de dato en
> la
> >> columna de la BD de nuevo a CHAR(60) y contarnos si todo sigue
> funcionando?
> >> Gracias
> >> ----------------------------------
> >> Carlos Peix
> >>
> >> 2010/1/12 Fabio Maulo <[email protected]>
> >>>
> >>> Si pero ojo que "0123456" != "0123456   "
> >>> quien modifica el valor es el DB o tu clase, NH no lo toca.
> >>>
> >>> El 12 de enero de 2010 14:50, Carlos Peix <[email protected]>
> >>> escribió:
> >>>>
> >>>> Ahhh, perfecto.
> >>>> Graciassss
> >>>> ----------------------------------
> >>>> Carlos Peix
> >>>>
> >>>> 2010/1/12 Fabio Maulo <[email protected]>
> >>>>>
> >>>>> usando:
> >>>>> type="AnsiStringFixedLength(10)"
> >>>>> le estas diciendo a NH que el type en el DB es CHAR(10).
> >>>>> Además le estas diciendo a NH como va a funcionar ese campo y que si
> >>>>> encuentra "0123456" en la propiedad, el valor del campo será "0123456
>   "
> >>>>> La respuesta a la pregunta es: Yes, you can
> >>>>>
> >>>>> El 12 de enero de 2010 14:20, Carlos Peix <[email protected]>
> >>>>> escribió:
> >>>>>>
> >>>>>> Uh? Bueno, muy bien, pero aun me queda la duda. Seria bueno usar
> CHAR
> >>>>>> si se puede. Se puede?
> >>>>>> Dale, escribi un poquitin mas, te espero mientras pongo el agua para
> el
> >>>>>> mate.
> >>>>>> Grazie
> >>>>>> ----------------------------------
> >>>>>> Carlos Peix
> >>>>>>
> >>>>>> 2010/1/12 Fabio Maulo <[email protected]>
> >>>>>>>
> >>>>>>> type="AnsiString"
> >>>>>>>
> >>>>>>> El 12 de enero de 2010 13:48, Carlos Peix <[email protected]>
> >>>>>>> escribió:
> >>>>>>>>
> >>>>>>>> Hola Tano,
> >>>>>>>> Esto quiere decir que no es recomendable usar campos CHAR para el
> >>>>>>>> discriminator? (en estos campos SQLServer completa con espacios a
> la derecha
> >>>>>>>> pero creo que ya sabrias esto)
> >>>>>>>> Es razonable que NH se confunda ya que graba un "Transferencia" y
> >>>>>>>> obtiene un "Transferencia          " pero tambien seria bueno que
> NH no se
> >>>>>>>> fuera de mambo con esto puesto que es bastante comun.
> >>>>>>>> Por ultimo, segun creo, los indices sobre CHAR son mas eficientes
> (en
> >>>>>>>> velocidad de lookup, no en almacenamiento) que sobre VARCHAR y es
> altamente
> >>>>>>>> probable que esta columna sea indexada puesto que participa del
> query, en
> >>>>>>>> general.
> >>>>>>>> Como siempre, le pertenezco...
> >>>>>>>> Gracias
> >>>>>>>> ----------------------------------
> >>>>>>>> Carlos Peix
> >>>>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Para escribir al Grupo, hágalo a esta dirección:
> >>>>>> [email protected]
> >>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Fabio Maulo
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Para escribir al Grupo, hágalo a esta dirección:
> >>>>> [email protected]
> >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>>>
> >>>>
> >>>> --
> >>>> Para escribir al Grupo, hágalo a esta dirección:
> >>>> [email protected]
> >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>>
> >>>
> >>>
> >>> --
> >>> Fabio Maulo
> >>>
> >>>
> >>> --
> >>> Para escribir al Grupo, hágalo a esta dirección:
> >>> [email protected]
> >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>
> >>
> >> --
> >> Para escribir al Grupo, hágalo a esta dirección:
> >> [email protected]
> >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >>
> >
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a