使用C#在linq中转换这个最长的sql查询? [英] Convert this longest sql query in linq using C#?

查看:71
本文介绍了使用C#在linq中转换这个最长的sql查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有人帮助我将其转换为LINQ?



  SELECT   DISTINCT  TBCAR1.MAKE_ID,TBCAR1.Species,TBCAR1.ModelName,TBCAR1.ModelNum,TBCAR1.Body,TBCAR1.ModelFrom,TBCAR1.ModelTo,TBCAR1.Doors,TBCAR1.VersionName,TBCAR1.CodeList,TBCAR1.BodyName,TBCAR1。 ModelYear,TBCAR1.Fuel,TBCAR1.Kw,TBCAR1.Cyli,TBCAR1.contOE,TBCAR1.Body_ID,TBCAR1。 TYPE_ID ,TBCAR1.vehicleFileName,MIN(TBCAR3.ClearEngine)  AS  CodMotore,ISNULL(TBCAR1.codeType,TBCAR1.codeRange) AS  CodVersione,TBCAR1.ccmTech,TBCAR1。 nOE,TBCAR1.Engine,TBCAR1.codeType,TBCAR1.Volume, LEFT (TBCAR1.Build_From, 4  AS  AnnoDal, RIGHT (TBCAR1.Build_From, 2  AS  MeseDal, LEFT (TBCAR1.Build_To, 4  AS  AnnoAl, RIGHT (TBCAR1.Build_To, 2  AS  MeseAl ,TBCAR3.ClearEngine 

FROM TBCAR1 LEFT OUTER JOIN TBCAR2 ON TBCAR1。 TYPE_ID = TBCAR2.TypeID AND TBCAR1.Body_ID = TBCAR2.BodyID LEFT OUTER JOIN TBCAR3 INNER JOIN TBCAR4 ON TBCAR3.CTYPE_ID = TBCAR4.ComponentTypeID ON TBCAR1。 TYPE_ ID = TBCAR4.TypeID

GROUP BY TBCAR1.Build_From ,TBCAR1.Build_To,TBCAR1.MAKE_ID,TBCAR1.Species,TBCAR1.ModelName,TBCAR1.ModelNum,TBCAR1.Body,TBCAR1.ModelFrom,TBCAR1.ModelTo,TBCAR1.Doors,TBCAR1.VersionName,TBCAR1.CodeList,TBCAR1.BodyName,TBCAR1 .ModelYear,TBCAR1.Fuel,TBCAR1.Kw,TBCAR1.Cyli,TBCAR1.contOE,TBCAR1.Body_ID,TBCAR1。 TYPE_ID ,TBCAR1.vehicleFileName,TBCAR1.ccmTech,TBCAR1 .nOE,TBCAR1.Engine,ISNULL(TBCAR1.codeType,TBCAR1.codeRange),TBCAR1.codeType,TBCAR1.Volume,TBCAR3.ClearEngine

HAVING (TBCAR1.MAKE_ID = 3 AND (TBCAR1.ModelNum = ' 8PA' AND (TBCAR1.ModelName = ' A3' AND (TBCAR1.Body = ' BER' AND (TBCAR1.Doors = 5 AND (TBCAR1.BodyName = ' Sportback' AND (TBCAR1。 Species = ' CAR'

ORDER BY TBCAR1.ccmTech,TBCAR1.Kw





或者有没有转换SQL而是使用datacontext对象的替代方案?

谢谢

Cris

解决方案

最简单的方法是使用特定工具,例如Linqer,LinqPad等。请参阅: SQL to LINQ Tool - 堆栈溢出 [ ^ ]



另一方面,你应该做 - 至少 - 通过研究 C#中的101个LINQ样本 [ ^ ]

Is there someone help me convert it into LINQ?

SELECT DISTINCT TBCAR1.MAKE_ID, TBCAR1.Species, TBCAR1.ModelName, TBCAR1.ModelNum, TBCAR1.Body, TBCAR1.ModelFrom, TBCAR1.ModelTo, TBCAR1.Doors,TBCAR1.VersionName, TBCAR1.CodeList, TBCAR1.BodyName, TBCAR1.ModelYear, TBCAR1.Fuel, TBCAR1.Kw, TBCAR1.Cyli, TBCAR1.contOE,TBCAR1.Body_ID, TBCAR1.TYPE_ID, TBCAR1.vehicleFileName, MIN(TBCAR3.ClearEngine) AS CodMotore, ISNULL(TBCAR1.codeType, TBCAR1.codeRange) AS CodVersione, TBCAR1.ccmTech, TBCAR1.nOE, TBCAR1.Engine, TBCAR1.codeType, TBCAR1.Volume, LEFT(TBCAR1.Build_From, 4) AS AnnoDal,RIGHT(TBCAR1.Build_From, 2) AS MeseDal, LEFT(TBCAR1.Build_To, 4) AS AnnoAl, RIGHT(TBCAR1.Build_To, 2) AS MeseAl,TBCAR3.ClearEngine
 
FROM TBCAR1 LEFT OUTER JOIN TBCAR2 ON TBCAR1.TYPE_ID = TBCAR2.TypeID AND TBCAR1.Body_ID = TBCAR2.BodyID LEFT OUTER JOIN TBCAR3 INNER JOIN TBCAR4 ON TBCAR3.CTYPE_ID = TBCAR4.ComponentTypeID ON TBCAR1.TYPE_ID = TBCAR4.TypeID
  
GROUP BY TBCAR1.Build_From, TBCAR1.Build_To, TBCAR1.MAKE_ID, TBCAR1.Species, TBCAR1.ModelName, TBCAR1.ModelNum, TBCAR1.Body,TBCAR1.ModelFrom, TBCAR1.ModelTo, TBCAR1.Doors, TBCAR1.VersionName, TBCAR1.CodeList, TBCAR1.BodyName, TBCAR1.ModelYear,TBCAR1.Fuel, TBCAR1.Kw, TBCAR1.Cyli, TBCAR1.contOE, TBCAR1.Body_ID, TBCAR1.TYPE_ID, TBCAR1.vehicleFileName, TBCAR1.ccmTech,TBCAR1.nOE, TBCAR1.Engine, ISNULL(TBCAR1.codeType,TBCAR1.codeRange), TBCAR1.codeType, TBCAR1.Volume, TBCAR3.ClearEngine
 
HAVING (TBCAR1.MAKE_ID = 3) AND (TBCAR1.ModelNum = '8PA') AND (TBCAR1.ModelName = 'A3') AND (TBCAR1.Body = 'BER') AND (TBCAR1.Doors = 5) AND (TBCAR1.BodyName = 'Sportback')  AND (TBCAR1. Species = 'CAR')
  
ORDER BY TBCAR1.ccmTech, TBCAR1.Kw



Or is there an alternative without converting SQL but using datacontext objects?
Thanks
Cris

解决方案

The easiest way is to use specific tool, such as Linqer, LinqPad, etc. See: SQL to LINQ Tool - Stack Overflow[^]

On the other side, you should do - at least - minimum effort to find solution by studying 101 LINQ Samples in C#[^]


这篇关于使用C#在linq中转换这个最长的sql查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆