【发布时间】:2015-02-19 23:56:51
【问题描述】:
SOA 中的 CRUD 操作:
可以在此处找到此问题的上下文:Why are CRUD operations so bad in a SOA design?
我正在开发一个接口 - 例如:Order,其中我有 CreateOrder、UpdateOrder 和 GetOrder 方法。 Order 也有 OrderLines。由于我不想将 CreateOrderLine、GetOrderLine 作为单独的方法,因此我通过 CreateOrder 和 GetOrder 方法完成这些任务。对于删除和更新,应调用 Update 方法。但我正在尝试制定删除特定 OrderLine 的模式。如何计算更新和删除之间的区别?关于如何实现DeleteOrderLine,我有以下想法:
方法一:
1a:如果您想删除一个订单行: - 填充请求中的所有 OrderLines,除了您要删除的那个。
1b:如果您想更新一个订单行: - 填充请求中的所有 OrderLines,并为您要更新的值填充新值。
2 调用 UpdateOrder 3 该实现在开始任何处理之前删除所有 OrderLineItems,并始终像添加新行一样添加这些行。
方法二: - 将某种“命令”添加到每个订单行(“添加”、“删除”、“更新”),实现可以用来执行适当的操作。 - 对于更新,使用“更新”命令标记需要更新的行。只有这些得到更新。 - 对于删除,使用“删除”命令标记需要删除的行。只有这些会被删除。
有没有人有任何其他想法或机制来完成这项工作?
谢谢。
【问题讨论】: