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:这有帮助吗?