Hola buenas tardes:
Estoy empezando a usar Nhibernate, y tengo un problema.
Tengo usuarios que pueden tener uno o mas roles, para solucionarlo a nivel
base de datos agregue una tercera tabla UsuarioRol, teniendo 3 tablas
(Usuarios, UsuarioRol y CatUsuarioRol), de manera que quiero relaccionar de
muchos a muchos las tablas Usuario - CatUsuariol
La Tabla Usuarios_rols, solo tendria los campos (usuario-id y rol_id)
Usuarios_rols
usuario_id(pk)
rol_id(pk)
Usuarios
usuario_id(pk)
otros campos
Cat_Usuario_rol
rol_id(pk)
otros campos
Este es mi usuario.hbm.xml
<?xml version="1.0"?>
> <hibernate-mapping assembly="castor" namespace="castor.core"
> xmlns="urn:nhibernate-mapping-2.2">
> <class name="Usuario" table="usuario" lazy="false" >
>
> <id name="UsuarioId">
> <column name="usuario_id" sql-type="integer" not-null="true" />
> <generator class="identity">
> <param name="sequence">usuario_usuario_id_seq</param>
> </generator>
> </id>
> <bag name="CatUsuarioRols" table="usuario_rol" lazy="false"
> inverse="true" >
> <key column="usuario_id" />
> <many-to-many class="CatUsuarioRol" column="rol_id" />
> </bag>
>
> <property name="Username">
> <column name="username" sql-type="character varying" not-null="true"
> />
> </property>
>
> (...) Otros atributos
>
>
> </class>
> </hibernate-mapping>
>
En mi CatUsuarioRol.hbm.xml
Solo tengo el id, y los property de la tabla, ya que lei que al tener
activada laa propiedad inverse="true" en la relaccion many to many no es
necesaria colocarla en el otro mapping
Si hago una consulta a la base de datos puedo ver que esta la relacción y
muestra los usuarios con sus respectivos roles, que agregue manualmente en
la base de datos
No existe el UsuarioRol.hbm.xml ni la entidad UsuarioRol, ¿Debo de
generarlos?
Cuando agrego un usuario, el codigo que utilizo es el siguiente
> Usuario nueva = new Usuario()
> {
> Username = Request.Form["username"],
> Activo = true,
FechaMod = DateTime.Now,
> (...) Otros atributos
>
> };
>
Mi pregunta como puedo hacer para que se guarden los roles.
Saludos!
--
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
---
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano"
de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos
electrónicos, envía un correo electrónico a
[email protected].
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.