查询表格时遇到一些困难。表格中有ResourceID
列和ProjectID
列。我想获取int
中所有ResourceID
个号码的列表,其中ProjectID
与projId
号码匹配。这可能吗?
我已经测试过,但我想这是错误的。我以为我可以使用resources
变量来获取值,但这不起作用。
var resources = db.Activities.Where(x => x.ProjectID == projId).ToList();
resources. ????
答案 0 :(得分:2)
您可以通过Select()
查询完成此操作,仅为集合中的每个元素提取所需的特定属性(在本例中为ResourceID
属性):
// Get your resources that meet your requirement
var resources = db.Activities.Where(x => x.ProjectID == projId).ToList();
// Get your Resource IDs from your previous query
var resourceIds = resources.Select(r => r.ResourceID);
如果您愿意,您实际上只需在一次通话中执行此操作:
// This will return a list of ResourceIDs that match
var resourceIds = db.Activities.Where(a => a.ProjectID == projId)
.Select(a => a.ResourceID)
.ToList();
答案 1 :(得分:2)
我相信答案是:
var resources = db.Activities.Where(x => x.ProjectID == projId).Select(x => x.ResourceID).ToList();
答案 2 :(得分:0)
您正在获取活动列表。您需要做的是选择所需的项目 - 在本例中为ResourceID列。
var resources = db.Activities.Where(x => x.ProjectID == projId)
.Select(x => x.ResourceID)
.Distinct() // Thought you might want this
.ToList();
您也可以使用不同的格式,有时可以更清晰。
var resources = (from a in db.Activities
where a.ProjectID == projId
select a.ResourceID).Distinct().ToList();
答案 3 :(得分:0)
如果您想获得int ..
列表,请更新您的查询 var resources = db.Activities.Where(x => x.ProjectID == projId).Select(x => x.ResourceID).ToList();