Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架-通用事务处理方法_Entity Framework_Transactions - Fatal编程技术网

Entity framework 实体框架-通用事务处理方法

Entity framework 实体框架-通用事务处理方法,entity-framework,transactions,Entity Framework,Transactions,我们目前正在使用实体框架的事务,但将来可能会切换到其他ORM。实现以下目标的最佳方式是什么 BeginTransaction(); //Some update/insert/delete operations here entity.Name = "Joe"; SaveChanges(); EndTransaction(); 我们不想使用“using”语句 我们需要它来处理嵌套事务 您可以使用TransactionScope。。。如果您真的愿意,您可以将其嵌套在try/catch/fin

我们目前正在使用实体框架的事务,但将来可能会切换到其他ORM。实现以下目标的最佳方式是什么

BeginTransaction();

//Some update/insert/delete operations here
entity.Name = "Joe";
SaveChanges();

EndTransaction();
  • 我们不想使用“using”语句
  • 我们需要它来处理嵌套事务

    • 您可以使用TransactionScope。。。如果您真的愿意,您可以将其嵌套在try/catch/finally中,尽管“using”语句会更容易。你有没有什么特别的理由不想用“使用”这个词?我已经成功地将这两种方法结合使用,并且它支持嵌套事务


    • 您可以使用TransactionScope。。。如果您真的愿意,您可以将其嵌套在try/catch/finally中,尽管“using”语句会更容易。你有没有什么特别的理由不想用“使用”这个词?我已经成功地将这两种方法结合使用,并且它支持嵌套事务


    • 您不必使用“using”,只需确保您处理了所有事务。为什么您反对使用
      using
      ??有什么特别的原因吗?我们希望在某些情况下有条件地使用它们,我们认为泛型方法将更具可移植性。我们已尝试在BeginTransaction()中创建TransactionScope,并在EndTransaction()中完成/处理它,但这也不起作用。但这可能是实体框架的一个问题。目前看来,您需要坚持使用。您不必使用“使用”,只需确保您处理了所有事务。您为什么反对使用
      使用
      ??有什么特别的原因吗?我们希望在某些情况下有条件地使用它们,我们认为泛型方法将更具可移植性。我们已尝试在BeginTransaction()中创建TransactionScope,并在EndTransaction()中完成/处理它,但这也不起作用。但这可能是实体框架的一个问题。现在看来,我们需要坚持使用。是的,我们没有使用“USING”语句,因为有几个原因,条件事务、可移植性,再加上太多的嵌套级别有时会变得混乱。我们确实认为我们可以在BeginTransaction()方法中简单地使用TransactionScope,然后在EndTransaction()方法中简单地完成并处理它。我们以前遇到过EF和驱动程序的问题。是的,我们不想使用“using”语句,因为有几个原因,有条件的事务、可移植性,再加上太多的嵌套级别有时会变得混乱。我们确实认为我们可以在BeginTransaction()方法中简单地使用TransactionScope,然后在EndTransaction()方法中简单地完成并处理它。我们之前和EF和我们的司机有过问题。