使用LINQ返回与web控件列表相交后的实体

本文关键字:实体 列表 控件 LINQ 返回 web 使用 | 更新日期: 2023-09-27 17:51:02

我可以使用以下命令返回与相交后匹配的id(字符串):

var ids = db.QuestionOption
            .Select(a => a.ControlID)
            .Intersect(cs.Select(b => b.ClientID))
            .ToList();

我如何与ID相交,但获取实体,而不仅仅是其匹配的ID?

使用LINQ返回与web控件列表相交后的实体

首先你可以得到Ids:

var idList = cs.Select(b => b.ClientID);

那么你可以像这样使用Contains:

var result = db.QuestionOption.Where(a => idList.Contains(a.ControlID)).ToList();

或者,您可以使用join:

from q in db.QuestionOption
join x in cs on q.ControlId equals x.ControlId
select q

你可以用where子句代替intersect:

var objs = db.QuestionOption.Where(a => cs.Select(b => b.ClientId).ToList().Contains(a.ControlID)).ToList();