2010-11-15 3 views
2

Je suit deux entitésComment amener les utilisateurs qui ont seulement une pièce d'identité du département spécifique, Linq

public class User 
{ 
    public int UserId { get; set; } 
    public string UserName { get; set; } 
    public List<Department> Departments { get; set; } 
} 

public class Department 
{ 
    public int DepartmentId { get; set; } 
    public string DepartmentName { get; set; } 
    public List<User> Users { get; set; } 
} 

Comme vous le voyez, la relation entre deux objets est M: N. Je veux obtenir l'utilisateur qui a seulement un ID de service spécifique, dans ce cas, Comment obtenir des utilisateurs en utilisant Linq?

Merci à l'avance

+0

Ceci est juste LINQ to Objects, n'est ce pas? – Ani

+0

Je suis en train de tester sur linq pour objecter, mais cela pourrait être linq to sql – Ray

+0

Y a-t-il des différences si cela vaut pour Linq To Sql? – Ray

Répondre

3
int requiredId = ... 
var usersInReqdDept = Users.Where(u => u.Departments 
             .Any(d => d.DepartmentId == requiredId)); 

Si la liste Departments peut être null, vous aurez besoin d'un nul chèque dans la clause Where.

Si vous souhaitez rechercher la liste à la place Departments,

int requiredId = ... 
var usersInReqdDept = Departments.Single(d => d.DepartmentId == requiredId) 
           .Users; 

Bien sûr, cela va lancer une exception si un tel ministère n'existe pas.

Questions connexes