sta*_*101 3 .net c# sql linq entity-framework
我真的在与LINQ挣扎.我已经在SQL中编写了我的查询(实际上它是一个支点),并尝试在LINQ中编写一个等效语句.任何指针都将非常感激.请参阅下面的代码:
SELECT b.URL,
SUM(CASE WHEN (a.ExtFlag = 0) THEN 1 ELSE 0 END) AS IntLinks,
SUM(CASE WHEN (a.ResponseCode >= 400 AND a.ExtFlag = 0) THEN 1 ELSE 0 END) AS IntBroken,
SUM(CASE WHEN (a.ExtFlag = 1) THEN 1 ELSE 0 END) AS ExtLinks,
SUM(CASE WHEN (a.ResponseCode >= 400 AND a.ExtFlag = 1) THEN 1 ELSE 0 END) AS ExtBroken
FROM Link a
INNER JOIN Host b
ON a.HostID = b.ID
GROUP BY b.URL
ORDER BY b.URL
Run Code Online (Sandbox Code Playgroud)
非常感谢.
我认为这应该做你想要的 - 至少值得一试:
var query = from link in db.Links
join host in db.Hosts on link.HostID equals host.ID
group link by host.Url into links
select new
{
Url = links.Url,
IntLinks = links.Count(link => link.ExtFlag == 0),
IntBroken = links.Count(link => link.ExtFlag == 0 &&
link.ResponseCode >= 400),
ExtLinks = links.Count(link => link.ExtFlag == 1),
ExtBroken = links.Count(link => link.ExtFlag == 1 &&
link.ResponseCode >= 400),
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4701 次 |
| 最近记录: |