Estoy probando EF y hago un montón de filtrado basado en muchas relaciones. Por ejemplo, tengo personas, ubicaciones y una tabla de ubicación de personas para vincular los dos. También tengo un rol y una lista de roles.Marco de entidad y muchas consultas muchas inutilizables?
EDIT: Tables:
Person (personid, name)
Personlocation (personid, locationid)
Location (locationid, description)
Personrole (personid, roleid)
Role (roleid, description)
EF me dará personas, roles y entidades de ubicación. EDITAR: Dado que EF va a NO generar los tipos de entidades personlocation y personrole, no se pueden usar en la consulta.
¿Cómo puedo crear una consulta para darme todas las personas de una ubicación determinada con un rol determinado?
En SQL de la consulta sería
select p.*
from persons as p
join personlocations as pl on p.personid=pl.personid
join locations as l on pl.locationid=l.locationid
join personroles as pr on p.personid=pr.personid
join roles as r on pr.roleid=r.roleid
where r.description='Student' and l.description='Amsterdam'
He mirado, pero me parece que no puede encontrar una solución simple.
Si quieres una buena respuesta a esta pregunta, que debe incluir los tipos de entidad. Después de todo, eso, no las tablas, es a lo que se referirá la Entidad SQL/LINQ a las Entidades. De lo contrario, tengo que adivinar los nombres de sus propiedades y la cardinalidad. –