如何将这个T-Sql转换为linq

时间:2012-11-05 10:06:02

标签: c# linq

我写这个tsql查询

((SELECT Id,[Mesc]
      ,[Line]
      ,[Unit]
      ,[Discription]
      ,[InvQty]
      ,[LastDateNil]
      ,[StCode]
      ,[PlanCode]
      ,[MIN]
      ,[MAX]
      ,[LastDateConsum]
      ,[PbsNo]
      ,[PbsDate]
      ,[PbsQty]
      ,[PbsQtyRec]
      ,[DateDelay]
      ,[TypeRequest]
      ,[HeaderId]
  FROM [MyMaterialDB].[dbo].[Report2]
  WHERE headerid IN(SELECT HeaderId FROM [MyMaterialDB].[dbo].[Report2] WHERE line='I'))

  Order by Mesc,Line,unit

我想将此转换为linq,但我是linq中的biginet,请帮助我。谢谢大家。

1 个答案:

答案 0 :(得分:3)

除非是拼写错误,否则不需要内部选择:

SELECT [Id], [Mesc], <etc>
  FROM [MyMaterialDB].[dbo].[Report2]
  WHERE line='I'
  ORDER BY Mesc,Line,unit

所以你的LINQ会是这样的:

report2
  .Select(x => new { x.Id, x.Mesc, <etc> })
  .Where(x => x.line == "I")
  .OrderBy(x => x.Mesc)
  .ThenBy(x => x.Line)
  .ThenBy(x => x.unit)

(NB偏离我的头顶 - 可能需要略微纠正)。