我必須進行一個基本的選擇任務進行LINQ的選擇與加盟
var query = db.Candidate.Where(.....
,但我想在哪裏上稱爲標籤
在SQL另一個表這將是
select * from Candidate
join Tag on Tag.candidateId = Candidate.tagId and Tag.tagId = 7
因此得到所有帶標記的候選人7
我試圖直接與一個這樣做這是可能的或我需要使用Linq to SQL嗎?
我必須進行一個基本的選擇任務進行LINQ的選擇與加盟
var query = db.Candidate.Where(.....
,但我想在哪裏上稱爲標籤
在SQL另一個表這將是
select * from Candidate
join Tag on Tag.candidateId = Candidate.tagId and Tag.tagId = 7
因此得到所有帶標記的候選人7
我試圖直接與一個這樣做這是可能的或我需要使用Linq to SQL嗎?
你沒有表現出關係,但它必須能夠做這樣的事情:
var query = db.Candidate
.Include(c => c.Tags)
.Where(c => c.Tags.Any(t => t.ID == 7))
只需查詢候選人的候選人有任何具有您要查找的ID的標籤。這個或多或少會寫成你所顯示的SQL。
如果啓用延遲加載,則可以省略Include()
。
您可以使用Join
在LINQ做到這一點:
var candidates = from candidate in db.Candidates
join on tag in db.Tags
where candidate.CandidateId == tag.TagId
select candidate
嘗試使用。加入做如下圖所示: -
var query = db.Candidate.Join(db.Tags, r => r.tagId , p => p.tagId , (r,p) => new{r.Name});
直接的不可能的。您首先需要連接表,然後從該關節獲取數據。 –
而我不能做db.Candidate.Where(w => w.Tag.SOMETHING –
http://stackoverflow.com/questions/9720225/how-to-perform-join-between-multiple-tables-in-linq- lambda –