我有这个过程,当用户想要取消支票时会发生。

每张支票包含多个PayableCheck记录和多个错误记录

Check.CheckID = PayableCheck.CheckID
Check.CheckID = Error.CheckID


每个PayableCheck都与1个Payable记录匹配。

PayableCheck.PayableID = Payable.PayableID


每个应付账款都对应一个收据或错误

Error.PayableID = Payable.PayableID
Receipt.PayableID = Payable.PayableID


当用户使支票(给定支票ID#)作废时,我需要:


将检查状态设置为V
创建另一张支票,其原始支票金额为负数
为与原始支票相关的每个错误创建另一个错误,每个错误的金额均为负数
将每个链接到原始支票的PayableCheck的Active字段设置为0
将每个链接的应付帐款设置为状态O
将每个链接的错误设置为状态O,并将每个链接的收据设置为状态O


我是否最好卸载使用Entity Framework的所有内容并在C#中进行更改然后保存,还是仅使用sql更新和插入方法会更好?

最佳答案

给定您要更改的“简易路线”,就是使用EF将数据加载到上下文中,进行更改,然后调用保存更改。

这应该会产生相当好的SQL,但是如果您担心实体的大小或将要加载的数据量,则效率将非常低下,那么更好的方法是直接在SQL中处理它并编写存储过程脚本,您可以当然还是从EF那里来

10-05 19:29