Buen Dia,

Me encuentro haciendo un IUserType el cual obtiene un entero de la BD y lo
convierte en un GUID y viceversa (si, suena extraño pero asi es).  El Guid
es de 16 bytes y un Int 4, entonces alli encaja!. Para llenar los 12 bytes
restante voy a utilizar el hashcode del tipo de la clase ( i.e.
typeof(theClass).HashCode()) para simular de cierta manera la unicidad del
Guid.  Estoy utilizando un IUserType para dicha tarea pero no he encontrado
la manera para poder acceder a la clase donde se mapeo el IUserType.  En
principio pense que se podria acceder a traves del parametro "object owner"
del metodo NullSafeGet y luego con un owner.GetType obtendria el
System.Type, pero verificando en el codigo esta propiedad viene NULL desde
NHibernate.  Es por esto que les escribo para saber como puedo conocer la
clase en donde se esta utilizando el custom IUserType.

Por el momento me ha funcionado utilizando un IPropertyAccessor con IGetter
y ISetter personalizados pero unicamente para guardar.  El inconveniente es
que esta estrategia no es util para hacer el Get o un QueryOver por Id pues
no convierte el GUID en Int en el SQL query que envia a la BD, pero si
tuviera el IUserType estoy seguro (90%) que esto no sucederia pues
NHibernate trataria primero de convertir el GUID a un Int pues detectaria
que la propiedad esta mapeada con un IUserType.

Bueno agradezco cualquier idea u opinion al respecto.

Atentamente,
Nestor Andres Rodriguez

-- 
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