将SQL查询转换为LINQ ORDER BY、GROUP BY、COUNT
我很难将此查询转换为LINQ。你们能帮帮我吗将SQL查询转换为LINQ ORDER BY、GROUP BY、COUNT,sql,asp.net-mvc,linq,lambda,Sql,Asp.net Mvc,Linq,Lambda,我很难将此查询转换为LINQ。你们能帮帮我吗 select ChoiceID, count(ChoiceID) as aValue from QuestionNumber inner join TestAnswer on QuestionNumber.QNID = TestAnswer.QNID where QuestionNumber.QuestionID = 30 group by ChoiceID order by aValue desc 谢谢 我认为应
select ChoiceID, count(ChoiceID) as aValue
from QuestionNumber inner join
TestAnswer
on QuestionNumber.QNID = TestAnswer.QNID
where QuestionNumber.QuestionID = 30
group by ChoiceID
order by aValue desc
谢谢 我认为应该是这样的:var query=from qn in QuestionNumber在qn.QNID上加入ta in TestAnswer等于ta.QNID,其中qn.QuestionID==30将qn按qn.ChoiceId分组到group1中选择new{ChoiceId=qn.ChoiceId,aValue=group1.Count}.orderbydegeneratingx=>x.aValue;。我认为orderby qAsnwer.QCount descending必须在选择之前添加,并且似乎更倾向于使用聚合OrderByDescending,因为此时还没有定义QCount。请不要只发布SQL并要求转换。至少显示一个类模型,以便导航属性和关联的多样性可见。另外,告诉我们您针对实体的LINQ类型,并展示您自己的第一次努力,以便我们了解您具体需要帮助的地方。最好的LINQ查询很少是SQL查询的1:1复制。
var query = from qNo in QuestionNumber
join tAnswer in TestAnswer on
qNo.QNID equals tAnswer.QNID into qAnswer
group qAnswer by qNo.ChoiceId
where qNo.QuestionId == 30
select new { ChoiceId = qNo.ChoiceId,
QCount = qAnswer.Count() }
orderby qAsnwer.QCount descending