【发布时间】:2019-12-24 07:38:02
【问题描述】:
我正在尝试扩展现有应用程序。我需要实现定义产品的多个实例的能力,同时保持它与产品类的现有实现向后兼容。
当前产品类别:
public class Product {
public int Id {get; set;}
public string Name {get; set;}
public decimal Price {get; set;}
}
通过简单的 EF 调用 context.Products.ToList() 来获取列表。
现在我想扩展现有的类以能够定义“子产品”。我的第一次尝试:
public class Product {
public int Id {get; set;}
public string Name {get; set;}
public decimal Price {get; set;}
public List<SubProduct> SubProducts {get; set;}
}
public class SubProduct : Product {
public string Identifier {get; set;}
}
现在,如果我有 Product 实例 ProductA(5 欧元,没有 subproducts)和实例 ProductB(7 欧元)和 2 Subproducts“1”和“2”,我需要获取获取所有产品时的以下列表:
Name Price
ProductA €5
ProductB-1 €7
ProductB-2 €7
如何获取所有产品的列表,但返回子产品(不包括其祖先)和产品的组合?
这必须以该列表与应用程序中所有已经存在的调用兼容的方式返回(这样上面的简单 EF 调用就会得到这个列表)
【问题讨论】:
标签: c# entity-framework linq oop