我有一个基本的选择任务
var query = db.Candidate.Where(.....
但我希望在另一个名为Tag
的表上的位置在sql中它将是
select * from Candidate
join Tag on Tag.candidateId = Candidate.tagId and Tag.tagId = 7
因此让所有候选人获得标签7
我试图直接用Where执行此操作,这是可能的还是我需要使用Linq to SQL。
答案 0 :(得分:2)
您可以在LINQ中使用Join
来执行此操作:
var candidates = from candidate in db.Candidates
join on tag in db.Tags
where candidate.CandidateId == tag.TagId
select candidate
答案 1 :(得分:2)
尝试使用.Join执行此操作,如下所示: -
var query = db.Candidate.Join(db.Tags, r => r.tagId , p => p.tagId , (r,p) => new{r.Name});
答案 2 :(得分:1)
你没有表现出这种关系,但必须能够做到这样的事情:
var query = db.Candidate
.Include(c => c.Tags)
.Where(c => c.Tags.Any(t => t.ID == 7))
只需查询候选人的任何标签,其中包含您正在寻找的ID。这将与您显示的SQL一样或多或少地写出来。
如果启用了延迟加载,则可以省略Include()
。