我通过Fluent NHibernate的AutoPersistenceModel使用NHibernate实现了一个定制的存储库。我有一堆实体类,我在这个存储库中持久化。问题是,在这些实体类中放入真实的的业务逻辑可以吗?如果某些业务逻辑需要操作存储库本身,这还可以吗?(例如,一些方法需要创建一些新实体,其中一些需要更新现有实体,等等)我知道NHibernate有强大的持久性无知特性,但我仍然不确定这个细节。
o7jaxewo1#
逻辑w.r.t实体应该被限制在它的“业务域”。更新实体内的其他实体/基础设施是非常糟糕的想法/设计。即
Order --> OrderLines Order {OrderId, OrderDate, Customer, OrderLines, ...} OrderLines {OrderLineId, Order, Item, Price, Quantity, Deliveries, DeliveredQuantity, ...} OrderDelivery --> OrderDeliveryLines OrderDelivery {OrderDeliveryId, Customer, DeliveryDate, ...} OrderDeliveryLines {OrderDeliveryLineId, OrderDelivery, OrderLine, DeliveryQuantity, ....}
其中orderLine的交付数量是针对它进行的所有交付的总和。因此,在上述情况下,通过订单创建/更新交付将是错误的(即订单流程),交付的交付行将针对相应的订单行(在交付流程内)进行。当事务边界被明确定义时,您将永远不会要求流程逻辑潜入您的“业务领域”http://domaindrivendesign.org/
1条答案
按热度按时间o7jaxewo1#
逻辑w.r.t实体应该被限制在它的“业务域”。更新实体内的其他实体/基础设施是非常糟糕的想法/设计。
即
其中orderLine的交付数量是针对它进行的所有交付的总和。
因此,在上述情况下,通过订单创建/更新交付将是错误的(即订单流程),交付的交付行将针对相应的订单行(在交付流程内)进行。
当事务边界被明确定义时,您将永远不会要求流程逻辑潜入您的“业务领域”
http://domaindrivendesign.org/