【发布时间】:2021-06-13 17:14:14
【问题描述】:
public class Offer
{
public int OfferId { get; set; }
public string OfferName { get; set; }
public ICollection<Item> Items { get; set; }
}
public class Item
{
public int ItemId { get; set; }
public string PartNo { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public int OfferId { get; set; }
public Offer Offer { get; set; }
}
public class OfferSum
{
public int OfferId { get; set; }
public string OfferName { get; set; }
public int ItemCount { get; set; }
public decimal TotalSum { get; set; }
}
我有 3 个类:Offer、Items 和名为 OfferSum 的视图。我想使用 LINQ 来填充 OfferSum 视图。
FindAll() is returning IQueryable<Offer>
ItemCount 应返回报价中包含的项目数量,TotalSum 应返回价格 * 报价中包含的项目数量。但我不知道如何编写查询。
我有这样的事情:
var result = FindAll().
Include(x=> x.Items).
GroupBy(x => new { x.OfferId, x.OfferName})
.Select(b => new OfferSum
{
OfferName = b.Key.OfferName,
OfferId = b.Key.OfferId,
ItemCount = b.Count(dont know),
TotalSum = b.Sum(dont know)
});
【问题讨论】:
-
ItemCount = b.Key.Items.Count()?
标签: c# .net entity-framework linq