Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何将此SQL查询转换为LINQ到SQL?_Sql Server 2005_Linq To Sql - Fatal编程技术网

Sql server 2005 如何将此SQL查询转换为LINQ到SQL?

Sql server 2005 如何将此SQL查询转换为LINQ到SQL?,sql-server-2005,linq-to-sql,Sql Server 2005,Linq To Sql,如何将此SQL查询转换为LINQ到SQL?: select COUNT(ua.UserAlertID) as Alerts, ph.LastName +' '+ ph.MiddleName as Name, ph.Email,us.UserSystemID, ur.UserStatus from PHUser ph inner join UserSystem us on us.UserID=ph.UserID inner join UserRole ur

如何将此SQL查询转换为LINQ到SQL?:

select 
    COUNT(ua.UserAlertID) as Alerts, 
    ph.LastName +' '+ ph.MiddleName as Name,
    ph.Email,us.UserSystemID,
    ur.UserStatus from PHUser ph 
inner join UserSystem us on us.UserID=ph.UserID
inner join UserRole  ur on ur.UserID=ph.UserID
inner join Role rr on rr.RoleID=ur.RoleID
inner join UserAlerts ua on ua.SeniorID=ph.UserID
group by ph.LastName,ph.MiddleName,ph.Email,us.UserSystemID,ur.UserStatus 
我已经将上面的大部分查询转换为LINQ,但是我一直在计算
ua.UserAlertID
列上的值的数量:
COUNT(ua.UserAlertID)as Alerts

如何将其转换为LINQ

请建议如何将计数(ua.UserAlertID)转换为Linq中的警报


谢谢

许多人可以帮助您完成此查询。这很简单。有一种产品(非常便宜)可以帮助你做这类事情。该产品是Linqer(
http://www.sqltolinq.com/
)。此工具将大多数SQL语句转换为Linq。有30天的试用期,我想费用不超过40美元。我已经多次使用它来加快将SQL查询转换为Linq的速度


那么我建议你买一个叫LinqPad的免费产品。这将允许您在将Linq查询粘贴到生产代码之前对其进行原型化。这是一个非凡的工具。

我能看看你转换的LinQ吗

如果您的查询是确定的,那么您将得到一行

按新的{ua.UserAlertId,…}将s分组到temp中

正如我在select new{}part use中所记得的那样

select new 
{
Total Alerts = temp.Key.UserAlertdId.Count(), ...,...,...,...
}

请您尝试一下并通知我好吗?

我建议您从下载LinqPad并亲自尝试一下,这样下次您就可以学习并更轻松地完成。感谢您的快速回复。我已将上面的大部分查询转换为linq,但我一直无法计算列名上的值数。这里将(ua.UserAlertID)计算为警报。如何在Linq中做到这一点??“很多人都可以帮助你完成这个查询。它非常简单”-那么你为什么不提供帮助,而不是推荐可收费的工具呢。这不是一个有用的答案。Linqer免费30天。他可以免费转换他的问题。此外,如果我为他创建查询,他会学到什么?我只需要帮助将计数(ua.UserAlertID)转换为Linq???@Tarun中的警报-您想要UserAlerts表中的总行数还是与联接匹配的总行数?我想要根据用户的警报计数。在my UserAlerts表中,有三个针对user1的警报和一个针对user2的警报。所以我需要3作为user1的计数,2作为user2的计数。我已经尝试了上面的方法,但是在temp.Key.UserAlertId.var p之后没有得到count()=(从ph in base.DataContext.User加入我们in base.DataContext.USyt on ph.UserID等于us.UserID加入我们in base.DataContext.URle on ph.UserID等于ur.UserID加入rr in base.DataContext.Rol on ur.RoleID等于rr.RoleID加入ua in base.DataContext.UserAlerts on ph.UserID等于ua.SeniorID组new{ph,us,ur,rr,ua}}by new{ph.LName,ph.MName,ph.Email,us.UserSystemID,ur.UserStatus,ua.UserAlertID,ph.UserID}进入g选择新的{Name=g.Key.MiddleName+“”+g.Key.LastName,Email=g.Key.Email,SystemID=g.Key.UserSystemID,Status=g.Key.UserStatus,g.Key.UserID,count=g.Key.UserAlertID}).Distinct();