Buenos días
Acudo a la lista porque tengo problemas para migrar de LinQ to SQL a Entity
Framework 4. Estamos trabajando con la versión 4 del Framework .NET y
ASP.NET MVC 2.
Nuestra duda es como resolver las consultas cuando existen relaciones
muchos-a-muchos (N:M) entre tablas.
Por ejemplo, para obtener una lista de los roles asociados a un usuario
necesitaríamos hacer una consulta del estilo:
IEnumerable<DataServices.Role> roles = from usr in Usuarios
join rol in Roles on rol.RolID
equals usr.Roles.RolID
where usr.UsuarioID == usuarioId
select rol;
Donde usuarioId es un parámetro informado para filtrar el código de usuario
que estamos buscando y usr.Roles.RolID es lo que no estamos pudiendo
resolver.
No podemos acceder a las relaciones de las diferentes tablas.
¿Nos está faltando definir algo más en el modelo? ¿Está bien armada la
consulta?
¿Alguien tendrá o me puede referir a algún ejemplo de este tipo? Todo lo que
vimos en la web son ejemplos muy sencillos pero ninguno resuelve el (N:M).
El modelo de datos sería algo así:
Usuarios
UsuarioID (PK)
Codigo
Nombre
Roles
RolID (PK)
Nombre
Descripcion
UsuariosRoles
UsuarioID (PK)
RolID (PK)
UsuariosRoles se relaciona con Roles y con Usuarios para resolver la
relación muchos-a-muchos (N:M) que existe entre Usuarios y Roles.
Al implementar esto en EF4, en el modelo .edmx (EF) solo figuran las tablas
Usuarios y Roles. Luego aparece una asociación UsusariosRoles, pero no la
tabla.
Desde ya muchas gracias.
Saludos.
Agustín E. Tamborelli
<<image001.gif>>
