Entity Framework - interroger une table de relations many-to-many
J'ai un plusieurs-à-plusieurs relation définie comme suit:
Employees
--------------
EmployeeID (PK)
Roles
--------------
RoleID (PK)
EmployeeRoles
--------------
EmployeeID (PK, FK)
RoleID (PK, FK)
Je vais essayer d'obtenir une liste des Employés, étant donné une liste ou RoleIDs:
private MyDBEntities _entities;
public SqlEmployeesRepository(MyDBEntities entities)
{
_entities = entities;
}
public IQueryable<Employee> GetEmployeesForRoles(int[] roleIds)
{
//get employees
}
Mais si j'essaie de le faire _entities.EmployeeRoles
il n'y a pas de EmployeeRoles objet. Mon edmx ressemble à ceci:
Donc, c'est reconnaître la relation entre les deux tables, mais ce n'est pas la création d'une entité de l'objet pour EmployeeRoles.
Comment puis-je obtenir une liste distincte des Employés étant donné une liste d'id de rôle?
source d'informationauteur Steven
Vous devez vous connecter pour publier un commentaire.
La relation entre les tables Rôle et l'Employé est représenté comme une propriété de navigation - chaque
Employees
propriété dans leRole
entité ne contiendra que les Employés qui ont ce rôle particulier.De le mettre dans l'autre sens - chaque Employé
Roles
propriété ne contient que les rôles que l'employé en particulier.Donné un ensemble de rôles
roleIds
à rechercher, vous pouvez l'utiliser pour obtenir la liste des employés qui ont un rôle dans cet ensemble:Edit:
L'autre façon d'obtenir les salariés est de s'attaquer au problème de l'autre côté de la relation (à commencer par le rôle de l'employé). Ce n'est probablement pas aussi efficace que la première approche, puisque nous avons de dupliquer les employés (sinon salariés avec soit deux rôles ne serait deux fois):
Peut-être?