我有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; }
}
我使用实体框架如何使用include从3个实体获取数据 我希望从SaleDetail获得销售额和数量,从产品中获取产品名称(带SaleID)。
答案 0 :(得分:0)
您可以使用Incluse(string path)方法,允许您不包含直接相关的属性。例如:
var salesWithLoadedSubentities = dbContext
.Sales
.Include("SalesDetails")
.Include("SalesDetails.Products");
现在,您的收藏集将包含Sale
个实体,其中包含已加载的详细信息和产品。
此外,您可以将lazy loading用于上下文,但不建议这样做,因为它可能会在生产环境中导致性能问题。