2017-07-11 20 views
1

以下LINQ查詢時,不允許我使用了多個地方的元素 - 它停止順心「到」:的LINQ如何連接表與每個表where子句和計數

var query = 
from ph in _db.PlayHits 
join ua in _db.UserAgents on ph.UserAgentId equals ua.UserAgentId 
where (ph.VideoId == 1 && ua.AgentString.Contains("test")) 
into hits 
select new 
{ 
     ResultCount = hits.Count() 
}; 

任何想法爲什麼或者我如何修改這個?

的equivilent SQL我想要的是:

select count(*) as ResultCount 
from Playhits ph 
join UserAgents ua on ph.UserAgentId = ua.UserAgentId 
where ph.VideoId = 1 
and ua.AgentString like '%test%' 

回答

2

據我瞭解,結果的計數可以使用擴展methond Count如下進行。

var query = 
    from ph in _db.PlayHits 
    join ua in _db.UserAgents on ph.UserAgentId equals ua.UserAgentId 
    where (ph.VideoId == 1 && ua.AgentString.Contains("test")); 
int Result = query.Count(); 
+0

謝謝,在第一個聲明我得到 - '一個查詢正文必須以select子句或group子句結束',但編譯如果我添加'select ph.VideoId' – user1444886