В настоящее время я использую такой блок кода, чтобы получить набор объектов БД с соответствующими идентификаторами.
List<subjects> getSubjectsById(List<long> subjectIDs){
return ctx.tagSubjects.Where(t => subjectIDs.Contains(t.id)).ToList();
}
Но это действительно неэффективно, потому что требует, чтобы вся таблица была прочитана из базы данных и затем отфильтрована внутри C #.
То, что я предпочел бы сделать, было бы чем-то эквивалентным:
SELECT * FROM subjects WHERE subjects.id IN (1,2,3,4,5,...);
Большая разница в том, что в первом примере фильтрация происходит внутри кода C #, а во втором - на сервере SQL (где находятся данные).
Есть ли [лучший] способ сделать это с помощью LINQ?