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
