![](/img/trans.png)
[英]SQL to Linq, having trouble in SUM and Multiple column group by with joins
[英]Having trouble with a Group By in LINQ
这是我的LINQ查询:
var results = from l in leads
from qr in l.QuoteRevisions
from rp in qr.RevisionProducts
select new QuoteSearchItem
{
ID = l.ID,
....
ProductCodes = l.QuoteRevisions.SelectMany(qr => qr.RevisionProducts)
.Select(p => p.Product.ProductCode).ToList()
};
我们尝试填充的对象如下所示:
public class QuoteSearchItem
{
public LeadID {get; set; }
....
public List<string> ProductCodes { get; set; }
....
}
我得到的结果几乎是准确的。 但是问题是,当产品代码不止一个时,每条线索都会得到相同的行。 因此,而不是得到这个:
{"LeadID": "12", "ProductCodes": ["Code1", Code2"]}
我得到这个:
{"LeadID": "12", "ProductCodes": ["Code1", Code2"]}
{"LeadID": "12", "ProductCodes": ["Code1", Code2"]}
因此,我需要按l.LeadID分组。 但是我在语法上遇到了麻烦。 我尝试了这个:
var results = from l in leads
from qr in l.QuoteRevisions
from rp in qr.RevisionProducts
group l by l.ID into lds
select new QuoteSearchItem
{
ID = lds.ID,
....
ProductCodes = lds.QuoteRevisions.SelectMany(qr => qr.RevisionProducts)
.Select(p => p.Product.ProductCode).ToList()
};
但是然后“ lds”没有包含任何东西。 不确定如何执行此操作。
谢谢!
您正在选择所有修订产品,然后构建潜在顾客列表。 这就是问题所在,因为现在对于每个修订版产品,您都有一个元素包含所有潜在客户的修订版产品。
尝试from
删除后续内容:
var results = from l in leads
select new QuoteSearchItem
{
ID = l.ID,
....
ProductCodes =
l.QuoteRevisions
.SelectMany(qr => qr.RevisionProducts)
.Select(p => p.Product.ProductCode)
.ToList()
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.