如果发生异常,会处理 SaveChanges 吗?

乔什蒙雷亚尔

请考虑以下代码:

public class UnitOfWork
{
    private readonly Context _context;
    public IEmployeeRepository Employees { get; private set; }

    public UnitOfWork(Context context)
    {
        _context = context;
        Employees = new EmployeeRepository(_context);
    }

    public int SaveChanges()
    {
        return _context.SaveChanges();
    }
}

public class Program
{
    try
    {
        using (var unitOfWork = new UnitOfWork(new Context()))
        {
            var employee = unitOfWork.Employees.GetById(1);
            employee.Name = "John";
            unitOfWork.SaveChanges();

            ComputeSalary(employee); 
        }
    }

    catch (Exception ex)
    {
        // Exception logic goes here...
    }

    private void ComputeSalary(Employee employee)
    {
        int x = 1/0; // This will throw an exception.

        return;
    }
}

Context类继承DbContext实体框架。因此,在ComputeSalary()函数中,您将看到将抛出异常,因为不允许除零。这将导致代码退出 using 块,从而处理 unitOfWork。我的问题是,即使 ComputeSalary() 函数发生异常,由 SaveChanges() 执行的更改仍会传播到数据库吗?

布鲁诺·阿尔梅达

如果您没有TransactionScope或类似的东西,则将提交更改。

PS:不确定,但想想如果你使用 EF Core,如果你有一个 TransactionScope,它会提交到 DataBase 事件。https://github.com/aspnet/EntityFrameworkCore/issues/5595

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SaveChanges Invald吗?

来自分类Dev

通过DataService进行SaveChanges的异常

来自分类Dev

实体框架Db.SaveChanges()无法正常工作吗?

来自分类Dev

我可以在SaveChanges()中动态获取实体关系吗?

来自分类Dev

在python中,发生异常时,锁会自动释放吗?

来自分类Dev

SaveChanges()时更新条目时发生错误

来自分类Dev

AngularJS在尝试轻拂saveChanges时抛出异常

来自分类Dev

实体框架6 SaveChanges导致唯一约束异常

来自分类Dev

在调用SaveChanges之前微风JS查询会导致失败

来自分类Dev

filter() 会抛出异常吗?

来自分类Dev

实体框架可以通过单个SaveChanges()添加许多相关实体吗?

来自分类Dev

在EF6中使用原始SQL查询时可以调用SaveChanges吗

来自分类Dev

执行baseSaveChanges()之后,DbContextHelper.SaveChanges()方法是否异步执行SaveScope()吗?

来自分类Dev

进行EF SaveChanges时处理重复记录

来自分类Dev

实体框架 - 如何处理批量 SaveChanges 失败

来自分类Dev

如果发生configChanges或后台有活动,EventBus.post()会传递事件吗?

来自分类Dev

如果我的水冷却器发生故障,CPU会炸吗?

来自分类Dev

如果在readShort()期间发生超时异常,套接字收到的数据会如何处理?

来自分类Dev

Python多处理:如果父进程被杀死,子进程会挂起吗?

来自分类Dev

设置OnClickListener会引发异常吗?

来自分类Dev

assert语句会吞下异常吗?

来自分类Dev

设置中的字典会引发异常吗?

来自分类Dev

如果升级,会丢失数据吗?

来自分类Dev

如果升级,会丢失数据吗?

来自分类Dev

Django中的异常处理-这是必要的吗?

来自分类Dev

快乐处理python 中的异常吗?

来自分类Dev

错误:.net中的db.SaveChanges()发生参照完整性约束冲突?

来自分类Dev

对数据库上下文执行SaveChanges时发生NullReferenceException错误

来自分类Dev

dispatchEvent会触发“默认”处理程序吗?

Related 相关文章

  1. 1

    SaveChanges Invald吗?

  2. 2

    通过DataService进行SaveChanges的异常

  3. 3

    实体框架Db.SaveChanges()无法正常工作吗?

  4. 4

    我可以在SaveChanges()中动态获取实体关系吗?

  5. 5

    在python中,发生异常时,锁会自动释放吗?

  6. 6

    SaveChanges()时更新条目时发生错误

  7. 7

    AngularJS在尝试轻拂saveChanges时抛出异常

  8. 8

    实体框架6 SaveChanges导致唯一约束异常

  9. 9

    在调用SaveChanges之前微风JS查询会导致失败

  10. 10

    filter() 会抛出异常吗?

  11. 11

    实体框架可以通过单个SaveChanges()添加许多相关实体吗?

  12. 12

    在EF6中使用原始SQL查询时可以调用SaveChanges吗

  13. 13

    执行baseSaveChanges()之后,DbContextHelper.SaveChanges()方法是否异步执行SaveScope()吗?

  14. 14

    进行EF SaveChanges时处理重复记录

  15. 15

    实体框架 - 如何处理批量 SaveChanges 失败

  16. 16

    如果发生configChanges或后台有活动,EventBus.post()会传递事件吗?

  17. 17

    如果我的水冷却器发生故障,CPU会炸吗?

  18. 18

    如果在readShort()期间发生超时异常,套接字收到的数据会如何处理?

  19. 19

    Python多处理:如果父进程被杀死,子进程会挂起吗?

  20. 20

    设置OnClickListener会引发异常吗?

  21. 21

    assert语句会吞下异常吗?

  22. 22

    设置中的字典会引发异常吗?

  23. 23

    如果升级,会丢失数据吗?

  24. 24

    如果升级,会丢失数据吗?

  25. 25

    Django中的异常处理-这是必要的吗?

  26. 26

    快乐处理python 中的异常吗?

  27. 27

    错误:.net中的db.SaveChanges()发生参照完整性约束冲突?

  28. 28

    对数据库上下文执行SaveChanges时发生NullReferenceException错误

  29. 29

    dispatchEvent会触发“默认”处理程序吗?

热门标签

归档