Asp.net mvc 如何在LINQ中查询列表

Asp.net mvc 如何在LINQ中查询列表,asp.net-mvc,asp.net-mvc-3,linq,entity-framework,Asp.net Mvc,Asp.net Mvc 3,Linq,Entity Framework,我的数据库中有两个表,一个用于项目成员,一个用于项目 对用户进行身份验证后,我有他的ID。在我的项目成员表中,我有项目ID和用户ID。 我可以使用获取此用户的项目成员列表 var pm = db.ProjectMembers.Where(c=> c.UserID=u.UserID) ; 现在我的问题是如何从上面的列表中获得projectd的列表。然后,如何使用ProjectID列表从项目表中获取项目列表。您问题的第一部分: var projectIDs = db.ProjectMemb

我的数据库中有两个表,一个用于项目成员,一个用于项目 对用户进行身份验证后,我有他的ID。在我的项目成员表中,我有项目ID和用户ID。 我可以使用获取此用户的项目成员列表

 var pm = db.ProjectMembers.Where(c=> c.UserID=u.UserID) ;

现在我的问题是如何从上面的列表中获得projectd的列表。然后,如何使用ProjectID列表从项目表中获取项目列表。

您问题的第一部分:

var projectIDs = db.ProjectMembers.Where(c=> c.UserID=u.UserID).select(pm=>pm.ProjectID) ;
第二部分:

var projectIDs = db.ProjectMembers.Where(c=> c.UserID=u.UserID).select(pm=>pm.ProjectID) ;
如果您使用的是实体框架,那么对于ProjectMembers列表中的每个实体,您都应该看到一个名为(project)的属性,您可以忽略我回答的第一部分,直接使用这个属性

var projectsList = db.ProjectMembers.Where(c=> c.UserID=u.UserID).select(pm=>pm.Project) ;
该属性可能有不同的名称,请尝试一下,并让我知道发生了什么

注意:如果检索到的项目为空,那么您的实体框架将与即时加载(Google it)一起工作。 因此,为了让实体框架生成正确的SQL语法来检索项目数据,请向查询中添加Include(),如下所示:

var projectsList = db.ProjectMembers.Where(c=> c.UserID=u.UserID).Include("Projects").select(pm=>pm.Project) ;