[英]Help convert SQL statement to LINQ Lambda (need help with group by and sum)
[英]Need help refactoring a LINQ statement with a Group By clause?
在下面找到需要重构的Linq-To-SQL:
var query = from p in Cache.Model.Products
join sc in Cache.Model.ShishaCombinations on p.ProductID equals sc.ProductID
where sc.NumberOfMixes == mixes
select new { p.ProductID, p.Name };
具有以下一线:
group by p.ProductID
我知道group by省略了对select子句的任何需要,因此两者都可以一起生活在同一LINQ-To-SQL语句中,因此有人可以帮助我重构以上内容吗?
为了帮助我删除结果中的所有重复数据。 <-这是这个问题的重点。 根据产品使用的调味剂的数量,将产品重复多次。 因此,在“ ShishaCombinations”表中,一个ProductID可能会针对其使用的每种口味重复多次。 我想对上述查询返回的结果进行分组,或对其进行调用,因为我不想将乘积“ n”次添加到我的GUI中,因为在结果中出现“ n”次。 希望这将消除对我正在尝试做的任何混淆。
下面的代码就是我所需要的:
var query1 = (from p in Cache.Model.Products
join sc in Cache.Model.ShishaCombinations on p.ProductID equals sc.ProductID
where sc.NumberOfMixes == mixes
select new { p.ProductID, p.Name }).Distinct();
乌福克,谢谢你答应伴侣 我知道我的回答很简单:)
您可以在select子句后使用into关键字。 您不能仅按分组,因为您要投影匿名类型。
var query = from p in Cache.Model.Products
join sc in Cache.Model.ShishaCombinations on p.ProductID equals sc.ProductID
where sc.NumberOfMixes == mixes
select new { p.ProductID, p.Name } into productInfo
group productInfo by productInfo.productId;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.