Hola gente!

 

Agustin, yo en una aplicacion para un cliente, tengo Roles y Users, y N:M.
El modelo de Entity Framework fue generado desde la  base.

 

Uso cosas como

 

Context.Users.Where(u => u.UserId = id).Roles;

 

Es decir, EntityFramework dejo en la clase User, un EntitySet<Role> (escribo
de memoria).

 

Y voila. En general no uso la sintaxis “from usr … “, asi que no sabria
traducirla ahora.

 

Nos leemos!

 

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Agustín
E. Tamborelli
Sent: Wednesday, March 16, 2011 10:37 AM
To: [email protected]
Subject: [puntonet] Consulta Entity Framework

 

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

<<image002.gif>>

Responder a