2017-02-17 16 views
1

Как выбрать данные, которые мне нужны в отношениях. В этом коде работают мои поисковые запросыasp.net mvc поиск по отношениям в linq to sql

var teachers = db.teachers.Where(a => a.Groups.Any(g => g.id == groupid)).ToList(); 

Но этот код возвращает учителей со всеми их группами. Мне нужны группы, у которых есть id = groupid

ответ

0

Необходимо запросить запрос, чтобы получить только группы, отвечающие этому условию. Я предлагаю создать пользовательский класс, чтобы принести только те данные, что вам нужно:

public class TeacherDTO 
{ 
    public int Id{get;set;} 
    public ICollection<Group> Groups{get;set;} 
    //... 
} 

Таким образом, запрос может выглядеть так:

var teachers = db.teachers.Where(a => a.Groups.Any(g => g.id == groupid)) 
          .Select(a=>new TeacherDTO 
              { 
              Id=a.id, 
              Groups=a.Groups.Where(g=>g.id==groupid) 
              }) 
          .ToList();