我可以使用以下命令返回在交叉点后匹配的ID(字符串):
var ids = db.QuestionOption
.Select(a => a.ControlID)
.Intersect(cs.Select(b => b.ClientID))
.ToList();
我如何与ID相交但是获取实体,而不仅仅是匹配的ID?
答案 0 :(得分:2)
首先,您可以获得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
答案 1 :(得分:1)
你可以做一个where子句而不是intersect:
var objs = db.QuestionOption.Where(a => cs.Select(b => b.ClientId).ToList().Contains(a.ControlID)).ToList();