当你有一个对象id列表时,有效的linq查询返回对象

时间:2014-05-11 03:02:57

标签: c# asp.net-mvc linq entity-framework

我有一个包含所有peronID的列表,我想运行一个Linq查询来检索剩余的详细信息。

这是我的代码,但我相信它会检查我的People数据库表中的每个项目,而不是我的personID列表中的每个项目都是低效的:

List<int> personIDs = Session["PeopleList"] as List<int>;

var people = (from c in db.People
    where (
    from a in personIDs
    where a == c.PersonID
    select a
    ).Any()
    select c);

是否有更有效的方法来运行此代码?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

var people = (from c in db.People
              where personIDs.contains(c.id)
              select c).ToList();