4
这里有一个很大的设计缺陷,但我在解决它时遇到了问题:DDD - Repository模式返回数据库密钥?
业务需求有一点涉及,所以我会尽量保持这个简单。 我们有一张购物表和一张退货表。退货时,我们必须找到匹配,返回到数据库中最旧的购买,并记录在“返回应用”表中。
因此,当我在该交易中插入回报时,我需要将回报应用于购买记录。
现在,我们有一个调用插入库的服务。该服务需要知道该插入记录的密钥是什么,以便它可以通过使用该密钥插入“应用”记录来完成交易。
我们基本上被卡住了,因为我的理解是存储库不应该返回这种数据。这难道不会破坏Repository作为集合的想法吗?
什么是替代方案?
澄清:
我们有一个购买表,返回表和应用表
施加的表看起来像这样 purchaseId returnId qtyReturned
所以,当了一回是插入我需要购买的ID(由一些商业规则决定)和新插入的回报的ID。
嗨亚瑟,这个感谢。我想我知道你要去哪里,但是请看我上面的说明。我如何处理需要插入返回的ID以便插入到应用表中? – jlembke 2009-07-10 17:47:10