C# 多对多关系类设计
如何处理以下场景 我有一个C# 多对多关系类设计,c#,vb.net,class,oop,C#,Vb.net,Class,Oop,如何处理以下场景 我有一个产品类,它有列表和订单类,它有列表 有这样的结构好吗?否则将来会有问题。 如果是它导致了问题,那么是否有其他方法来实现它…您真的不需要从产品到订单的链接,因为如果您想知道某个特定产品过去是否已订购过,那么您可以使用产品ID搜索与每个订单关联的产品。从订单到产品的链接是有意义的,因为这样你可以看到订单是由哪些产品组成的。我想说,在产品类中有列表可能弊大于利。一个产品可以有数千个订单,具体取决于项目的大小 在这种情况下,即使您只是想创建一个产品列表,您也必须在其中创建数千个
产品
类,它有列表
和订单
类,它有列表
有这样的结构好吗?否则将来会有问题。
如果是它导致了问题,那么是否有其他方法来实现它…您真的不需要从
产品
到订单
的链接,因为如果您想知道某个特定产品过去是否已订购过,那么您可以使用产品ID搜索与每个订单关联的产品。从订单
到产品
的链接是有意义的,因为这样你可以看到订单是由哪些产品组成的。我想说,在产品
类中有列表
可能弊大于利。一个产品可以有数千个订单,具体取决于项目的大小
在这种情况下,即使您只是想创建一个产品列表,您也必须在其中创建数千个订单的实例,这是一个完全无用的数据
相反,您可以通过以下方式轻松接受包含产品的所有订单:
List<Order> _Orders = AllOrders.Where(_Order => _Order.ProductIds.Contains(YourProductId));
List\u Orders=AllOrders.Where(\u Order=>\u Order.productId.Contains(YourProductId));
通过使用元组将产品与订单链接,可以将订单和产品类型解耦
从产品
中删除列表
,从订单
中删除列表
,并创建第三个类,该类包含与任何ORM(实体框架,NHibernate,…)相结合的列表?为什么产品
需要知道包含它的订单
呢?在我看来,产品
不应该有列表
属性。因为我需要针对任何给定的搜索条件(如年、月、日期和日期之间)获取特定产品的订单。@Ramesh:这有帮助吗?