我有一个控制器和一个存储库,使用EF 6。
控制器文件
int userID = _myrepository.addCustomer(model)
我获取userID
然后使用第三方插件进行支付(例如:)
var success = makePaymentThroughPaymentProcessor(userID);
现在,如果付款未成功或出现错误,我希望回滚更改,以便不会将任何客户添加到数据库中。
我已尝试使用包装存储库方法的方式来实现。
(var transaction = objMCOEntities.Database.BeginTransaction())
{
//code...
context.SaveChanges();
return userID;
我查看了 https://msdn.microsoft.com/zh-cn/data/dn456843.aspx,但我不确定在调用 addCustomer 存储库方法后如何引用事务。
我可以先收款,然后再将客户添加到数据库中,但如果在将客户添加到数据库时出现错误,则不会创建客户,但付款已经完成,那么我必须退款给客户。