首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnitofWork [aspnetboilerplate样板]事务管理

UnitofWork [aspnetboilerplate样板]事务管理
EN

Stack Overflow用户
提问于 2017-12-04 20:34:47
回答 0查看 2.4K关注 0票数 2

我目前正在致力于实现aspnetboilerplate的事务管理

下面是我用来插入订单和与该订单关联的产品的方法

代码语言:javascript
复制
public class OrderController
{
    IOrderAppService _orderAppService;
    public OrderController(IOrderAppService orderAppService)
    {
        _orderAppService = orderAppService;               
    }
    public void TestOrder()
    {
        _orderAppService.TestTransaction();
    }
}


public class OrderAppService : IOrderAppService
{
    //repositories are injected here

    public void TestTransaction()
    {
        //Created 'order' and 'products' here

        //Committing the created objects
        CommitOrderTransaction();

    }

    private void CommitOrderTransaction()
    {
        using (var unitOfWork = _unitOfWorkManager.Begin())
        { 
            //Inserts the Order record
            CommitInsertOrderHeader(); // Order Header is saved in database by using SaveChanges() method

            //Inserts the Product records associated with OrderId
            CommitInsertOrderDetails(); 

            unitOfWork.Complete();                
        }
    }
}

正如aspnetboilerplate文档所述,“如果当前工作单元是事务性的,那么如果发生异常,事务中的所有更改都会回滚,即使是保存的更改也是如此。”

在我的例子中,当插入OrderDetails时发生异常时,我希望标题记录也被回滚,但我仍然在数据库中有订单标题记录。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47633525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档