5

このSQLクエリをEntity Frameworkに実装しようとしています

select * 
from students 
where student.fieldid in (select fieldid from fields where groupid = 10)

これはアプローチだと思います:

var fields = context.fields.where(t=>t.groupid = 10).toList();

var result = context.students.where(t=> fields.Contains(t.fieldid)).toList();

しかし、これは機能していません!

他の誰かがこのようなことをしようとしましたか?

4

1 に答える 1

6

SQLINは LINQ と同等Containsです。

var names = new string[] { "Alex", "Colin", "Danny", "Diego" };    
var matches = from person in people
              where names.Contains(person.Firstname)
              select person;

したがって、SQL ステートメントは次のようになります。

select * from students where student.fieldid in ( select fieldid from fields 
where groupid = 10)

LINQ では次のものと同等です。

var fieldIDs= from  Fids in db.fields
              where Fids.groupid==10
              select Fids.fieldid;

var results= from s in db.students
             where fieldIDs.Contains(s.fieldid)
             select s;
于 2013-07-28T07:49:18.257 に答える