将此sql命令转换为c#linq
我正在尝试将此tSql命令转换为linq查询。将此sql命令转换为c#linq,linq,tsql,code-conversion,Linq,Tsql,Code Conversion,我正在尝试将此tSql命令转换为linq查询。 我想对这些列进行分组。 你能帮我吗 select vUnit.FK_Unit_ID , Unit.unitNumber, unit.unitTitle , title.featureTitleName from unit.UnitFeatureValue vUnit inner join unit.Unit on vUnit.FK_Unit_ID = Unit.ID inner join unit.FeatureTitle title on vU
我想对这些列进行分组。
你能帮我吗
select vUnit.FK_Unit_ID , Unit.unitNumber, unit.unitTitle , title.featureTitleName
from unit.UnitFeatureValue vUnit
inner join unit.Unit on vUnit.FK_Unit_ID = Unit.ID
inner join unit.FeatureTitle title on vUnit.FK_FeatureTitle_ID = title.ID
where vUnit.FK_Unit_ID = 15 and title.canMoreSelect = 1
group by vUnit.FK_Unit_ID ,unit.unitNumber, unit.unitTitle , title.featureTitleName
像这样的
var result = (from v in vUnit
join u in unit on v.FK_Unit_ID equals u.ID
join t in title on v.FK_FeatureTitle_ID equals t.ID
where v.FK_Unit_ID == 15 and t.canMoreSelect == 1
select new { v.FK_Unit_ID , u.unitNumber, u.unitTitle , t.featureTitleName }).ToList();
请告诉我们您尝试了什么,我们将帮助您实现它。您的组的目标是什么,您的查询没有计数、总和或类似的内容,它被用作
select distinct
如何将var查询结果转换为我的类?使用您的类newyourclass{…}
而不是new{…}
请解释下一票,并提出更好的建议?您的联接语法错误,这不会影响distinct/GROUPING您看到原始查询了吗?它需要一个分组吗?这取决于数据。但是你的连接语法仍然是错误的=
应该是等于(正如where子句和(
…)上的注释=
应该是=
)。不需要ToList()
。(并杀死可组合性)当SQL有表别名,如vUnit
和title
时,我建议使用它们作为范围变量。我建议不要搞得一团糟。这听起来像是说“我建议不要编程”?你为什么在这个网站上?如果你认为你有更好的方法,你的答案不应该反映这一点吗?
var query = (
from v in dbContext.UnitFeatureValue
join u in dbContext.Unit on v.FK_Unit_ID equals u.ID
join t in dbContext.FeatureTitle on v.FK_FeatureTitle_ID equals t.ID
where v.FK_Unit_ID == 15 && t.canMoreSelect == 1
select new {
v.FK_Unit_ID,
u.unitNumber,
u.unitTitle,
t.featureTitleName,
}).Distinct();