LINQ GroupBy获取名称和计数
我对如何在Linq中使用GroupBy有点困惑。我需要显示一个产品的名称,并计算它的报价,我想出了这个LINQ GroupBy获取名称和计数,linq,entity-framework,linq-to-sql,linq-to-entities,Linq,Entity Framework,Linq To Sql,Linq To Entities,我对如何在Linq中使用GroupBy有点困惑。我需要显示一个产品的名称,并计算它的报价,我想出了这个 var context = new Model.Entities(); var query = from p in Product join o in Offers on p.Prod_ID equals o.Prod_ID orderby o.Prod_ID select new { Name = p.Name, Off
var context = new Model.Entities();
var query = from p in Product
join o in Offers on p.Prod_ID equals o.Prod_ID
orderby o.Prod_ID
select new { Name = p.Name, Offers = o.Prod_ID.Count()};
var products = query.ToList();
现在我不能简单地
Offers = o.Prod_ID.Count()
如何显示带有产品名称的行以及其优惠数量?听起来您希望加入一个群组:
var query = from p in Product
join o in Offers on p.Prod_ID equals o.Prod_ID into offers
orderby p.Prod_ID
select new { Name = p.Name, Offers = offers.Count() };
现在在join
子句之后,范围中有两个范围变量:
(产品)p
(该产品的优惠)优惠
p.Prod\u ID
——然后在select
子句中计算报价
请注意,通过这种方式,对于没有报价的产品,您仍然会得到一个结果,而如果您进行的是直接的内部联接,则这些结果将完全丢失。btw是一篇关于Linq查询的优秀文章,其中包含Linq和sql中的示例以及显示每种联接类型的结果