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

Responder a