[英]Complex sum with Entity Framework
我需要幫助以在復雜的環境中使用linq來sum
這是實體
public class Product : EntityBase
{
[Key]
public int ProductId { get; set; }
public string Description { get; set; }
public string ReportText1 { get; set; }
public string ReportText2 { get; set; }
public bool Standard { get; set; }
public int ProductGroupId { get; set; }
public decimal? Surcharge1 { get; set; }
public decimal? Surcharge2 { get; set; }
public decimal? Surcharge3 { get; set; }
public decimal? Surcharge4 { get; set; }
public decimal PriceIn { get; set; }
public decimal PriceOut { get; set; }
public decimal PriceArtisanIn { get; set; }
public decimal PriceArtisanOut { get; set; }
public decimal PriceTotalIn { get; set; }
public decimal PriceTotalOut { get; set; }
public decimal PriceTotalOutVat { get; set; }
public decimal PriceAdjustment { get; set; }
public bool Calculate { get; set; }
public string Notes { get; set; }
public virtual ProductGroup ProductGroup { get; set; }
public virtual ICollection<ProductArticle> ProductArticles { get; set; }
}
public class ProductArticle : EntityBase
{
[Key]
public int ProductArticleId { get; set; }
public int ProductId { get; set; }
public int ArticleId { get; set; }
public decimal Qty { get; set; }
public decimal PriceIn { get; set; }
public bool Primary { get; set; }
public virtual Product Product { get; set; }
public virtual Article Article { get; set; }
}
public class Article : EntityBase
{
[Key]
public int ArticleId { get; set; }
public string ErpId { get; set; }
public string Supplier { get; set; }
public string Description { get; set; }
public string Specification { get; set; }
public string Unit { get; set; }
public string Account { get; set; }
public decimal PriceIn { get; set; }
public virtual ICollection<ArticleTime> ArticleTimes { get; set; }
}
public class ArticleTime : EntityBase
{
[Key]
public int ArticleTimeId { get; set; }
public int ArticleId { get; set; }
public int TimeId { get; set; }
public virtual Article Article { get; set; }
public virtual Time Time { get; set; }
}
public class Time : EntityBase
{
[Key]
public int TimeId { get; set; }
public int ArtisanId { get; set; }
public string Paragraph { get; set; }
public string Description { get; set; }
public string Unit { get; set; }
public decimal PriceIn { get; set; }
public bool System { get; set; }
public decimal Qty { get; set; }
}
我想從產品中求和時間。 首先從Product迭代所有ProductArticle,然后在Article內迭代ArticleTime,然后在其中迭代到Time and Sum this。
還是最好在產品名稱TotalQty中創建一個新列,然后在save方法中求和? 問題是,當我在文章中添加時間時,產品實體將不會自動更新。 有任何想法嗎?
如果我正確地理解了您,則總共需要數量
var sum = dbContext
.Products
.Sum(p => p.ProductArticles
.Sum(pa => pa.Article
.ArticleTimes
.Sum(at => at.Qty)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.