这是我的MS SQL查询(我将其用作存储过程)。我是LINQ的新手。我正在使用.NET framework 4.0和Entity Framework。
查询1
SELECT SUM(PTS.Run1)AS Run1,SUM(PTS.Run2)AS Run2,
SUM(PTS.Run3)AS Run3,SUM(PTS.Run4)AS Run4,SUM(PTS.Run6)AS Run6
,SUM(PTS.BallsFaced)AS BallsFaced
FROM PlayerTeamSeason PTS
INNER JOIN Player P ON P.ID=PTS.PlayerId
WHERE P.CrewId =89 and PTS.SeasonId=1
编辑1
我需要获得解决方案
编辑2
from crew in Oritia_entities.Crews
join P in Oritia_entities.Players on crew.ID equals P.CrewId
//select new { P.ID, P.Matches };
join PTS in Oritia_entities.PlayerTeamSeasons on P.ID equals PTS.PlayerId
select new
{
TotalRuns = PTS.Run1 + PTS.Run2 + PTS.Run3 + PTS.Run4 + PTS.Run6
,
Bowls = PTS.BallsFaced
};
我已经将查询写入LINQ。但是我如何在这里使用SUM。正如我在我的SQL查询中写的那样
由于
VeeKeyBee
答案 0 :(得分:2)
首先,运行 - 不要走到LINQPad.net并获得LINQPad的副本。另外,我建议花费58美元来获得自动完成的高级版本。
有一些快速教程以及许多示例代码可以让您开始找到等效的LINQ命令。
这是一个非常易于使用的程序,允许您快速运行和试验LINQ,包括实际查询您的数据库。它还允许您运行代码甚至SQL查询,这在您的情况下很有用,因为您可以在一个选项卡中打开SQL查询,而在另一个选项卡中处理相应的LINQ查询。
其次,我在你的情况下开始的方式是输出。运行您的查询,查看输出是什么,然后尝试从中开发LINQ查询。我不认为尝试转换实际的SQL查询是最简单的方法,但它仍然可以为您提供一些指导。
你会发现LINQ实际上与SQL非常相似,第一种思考方式是它从SQL向后退。例如,select
出现在LINQ的末尾。实际上,一旦你使用LINQ一段时间,你会发现它的SQL实际上是倒退的。
让我在一些帮助下开始你:
SELECT @playerID= ID FROM Player WHERE crewid=@playerID
在LINQ中:
int playerID = 1234;
var result = from player in Player
where player.crewid == playerID
select player.ID
由于这是EF,您可能会在Player前面拥有数据库上下文,但至少在LINQPad中(虽然程序中有EF连接),您可以在将查询转移到生产代码之前开发查询。
以下是使用LinqPad的示例,其中显示了如何连接到Entity Framework以及如何编写一些查询。请注意,有可用的样品。另请注意,我写了几个可以帮助您查询的快速查询。
答案 1 :(得分:1)
有关返回多个结果集的SP的MSDN文章。谷歌第一。