2017-02-17 7 views
1

私は関係で必要なデータを選択する方法。このコードでは、私の検索は機能しますasp.net mvc linqで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(); 
関連する問題