在 3 个实体之间使用包含
本文关键字:包含 之间 实体 | 更新日期: 2023-09-27 18:35:34
我有 3 个实体
public class Sale
{
public Sale()
{
SalesDetails = new List<SalesDetail>();
}
[Key]
public int SaleId { get; set; }
public DateTime DateAdded { get; set; }
public decimal Total { get; set; }
public decimal Discount { get; set; }
public decimal FinalTotal { get; set; }
public virtual ICollection<SalesDetail> SalesDetails { get; set; }
}
public class SalesDetail
{
[Key]
public int SaleDetailsId { get; set; }
public Product Product { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal TotalPrice { get; set; }
public virtual Sale Sales { get; set; }
}
public class Product
{
[Key]
public int ProductId { get; set; }
public string BarCode { get; set; }
public string ProductName { get; set; }
public decimal? Price { get; set; }
public int Quantity { get; set; }
public DateTime? DateAdded { get; set; }
public int CategoryId { get; set; }
}
我使用实体框架如何使用包含从 3 个实体获取数据我想从销售中获取总计,从销售详细信息中获取数量,从产品(使用 SaleID)获取产品名称。
您可以使用 Incluse(字符串路径) 方法,该方法允许您包含不直接相关的属性。例如:
var salesWithLoadedSubentities = dbContext
.Sales
.Include("SalesDetails")
.Include("SalesDetails.Products");
现在,您的集合将包含Sale
实体,其中包含每个加载的详细信息和产品。
此外,您可以对上下文使用延迟加载,但不建议这样做,因为它可能会导致生产环境中的性能问题。