我正在尝试在使用 Nhibernate 加载聚合根时过滤它的子集合。向客户加载所有已发货的订单。这可能吗?
那么,您可以公开在地图中过滤的属性,如下所示:
<bag name="shippedOrders" ... where="Status == 'Shipped'" >
<key column="CustomerId" />
<one-to-many class="Order" />
</bag>
“where”属性是任意 SQL。
理论上,您可以拥有 Customer、Orders 和 ShippedOrders 两个属性。不过,我应该说我还没有这样做,我想测试 NH 在这种情况下如何处理级联。无论如何,当添加/删除新项目时,您必须注意确保它们正确添加/删除到两个集合中。
您想要这样做的事实让我们想知道 Order 是否是聚合根。从长远来看,这样做可能会少一些麻烦:
orderRepository.GetOrders(int customerId, OrderStatus[] statuses)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)