gpt4 book ai didi

c# - 存储过程或应用程序中的业务逻辑

转载 作者:行者123 更新时间:2023-11-30 22:11:41 26 4
gpt4 key购买 nike

<分区>

我的系统中有一个订单。用户可以编辑订单并将其保存到数据库中。在表单中有一个名为“Track order”的复选框字段,如果选中,会将订单 ID 添加到 TrackedOrders 表中。

现在,我的问题是,哪种解决方案更好:

  1. 使用单个存储过程 (SaveOrder),它首先使用 UPDATE 语句更新所有订单字段,然后调用另一个 SP (AddTrackedOrders) 在内部如果“isTrackedOrder”复选框值 = true。

  2. 或者调用只会更新订单的 SaveOrder sp,然后检查应用程序代码 if isTrackedOrder=true -> call AddTrackedOrders

两个调用必须在同一个事务中!这意味着如果 SaveOrder 成功并且 AddTrackedOrders 失败,则 SaveOrder 也必须回滚。

我知道可以在代码中创建交易,但我不确定这种方法的含义是什么。

编辑:

经过简短的研究,我注意到大多数人更喜欢使用 TransactionScope。我仍然不确定这有什么好处,因为它使交易时间更长(因此更容易出错)并进行多次数据库往返。另外,如果存储过程的结果控制业务场景的流程,您可能需要添加更多存储过程...

谢谢大家!

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com