当前位置: 首页 > news >正文

有趣的网站代码专业网站设计师去哪找

有趣的网站代码,专业网站设计师去哪找,石狮网站建设费用,证书查询入口官网EFCore 5 中的 SavepointsIntroEFCore 5中引入了一个新特性#xff0c;叫做 Savepoints#xff0c;主要是事务中使用#xff0c;个人感觉有点类似于 Windows 上的系统还原点#xff0c;如果事务发生了异常#xff0c;可以回滚到某一个还原点。Savepoints当我们在一个事务里… EFCore 5 中的 SavepointsIntroEFCore 5中引入了一个新特性叫做 Savepoints主要是事务中使用个人感觉有点类似于 Windows 上的系统还原点如果事务发生了异常可以回滚到某一个还原点。Savepoints当我们在一个事务里执行 SaveChanges 的时候EF Core 会在保存数据之前自动的创建一个 savepointSavepoints 有点类似于系统还原点的概念我们可以回滚到指定的 savepoint,当事务发生错误的时候会自动回滚到事务创建的 savepoint 回滚到事务开始之前的状态以便于我们做重试或可能的修复错误或其他逻辑。我们可以通过 CreateSavepoint 来手动创建一个 savepoint使用 RollbackToSavepoint 来回滚到某一个 savepoint来看一个微软的示例代码吧using var context  new BloggingContext(); using var transaction  context.Database.BeginTransaction();try {context.Blogs.Add(new Blog { Url  https://devblogs.microsoft.com/dotnet/ });context.SaveChanges();transaction.CreateSavepoint(BeforeMoreBlogs);context.Blogs.Add(new Blog { Url  https://devblogs.microsoft.com/visualstudio/ });context.Blogs.Add(new Blog { Url  https://devblogs.microsoft.com/aspnet/ });context.SaveChanges();transaction.Commit(); } catch (Exception) {// If a failure occurred, we rollback to the savepoint and can continue the transactiontransaction.RollbackToSavepoint(BeforeMoreBlogs);// TODO: Handle failure, possibly retry inserting blogs } Sample我们自己来动手一试示例代码如下var services  new ServiceCollection(); services.AddDbContextTestDbContext(options  {options.UseSqlite(Data SourceApplication.db;CacheShared).LogTo(Console.WriteLine, LogLevel.Warning); }); using var provider  services.BuildServiceProvider(); using var scope  provider.CreateScope(); var dbContext  scope.ServiceProvider.GetRequiredServiceTestDbContext(); dbContext.Database.EnsureCreated(); Console.WriteLine($Posts count:{dbContext.Posts.Count()}); using var transaction  dbContext.Database.BeginTransaction(); try {dbContext.Posts.Add(new Post() { Author  Tom, Title  Date changed, PostedAt  DateTime.UtcNow, });dbContext.Posts.Add(new Post() { Author  Tom, Title  Date changed, PostedAt  DateTime.UtcNow, });dbContext.SaveChanges();transaction.CreateSavepoint(Stage1);Console.WriteLine($Posts count:{dbContext.Posts.Count()});dbContext.Posts.Add(new Post() { Author  Alice, Title  Test, PostedAt  DateTime.UtcNow, });dbContext.SaveChanges();transaction.CreateSavepoint(Stage2);Console.WriteLine($Posts count:{dbContext.Posts.Count()});throw new InvalidOperationException();transaction.Commit(); } catch (Exception) {Console.WriteLine(Exception throw);transaction.RollbackToSavepoint(Stage1); }Console.WriteLine($Posts count:{dbContext.Posts.Count()}); 示例代码中创建了两个 savepoint然后抛出了一个异常捕获异常后回滚到第一个 savepoint输出结果如下output可以看到只有第一个 savepoint 之前的数据保存了下来第二个 savepoint 虽然数据成功保存了但是又被回滚了最终只有第一个 savepoint 之前的数据变更被保存了下来More通过 savepoint 我们就可以使得事务控制更加精细可以更能够好的控制事务中的数据变更但是需要注意的是这个功能不要和 Sql Server 中的 Multiple Active Result Sets 一起使用一旦发生了错误事务控制可能会发生不可预期的情况。Savepoints are incompatible with SQL Servers Multiple Active Result Sets, and are not used. If an error occurs during SaveChanges, the transaction may be left in an unknown state.Referenceshttps://docs.microsoft.com/en-us/ef/core/saving/transactions#savepointshttps://github.com/WeihanLi/SamplesInPractice/blob/master/EF5Samples/SavePointsTest.cs
http://www.sadfv.cn/news/21422/

相关文章:

  • 吴忠市建设局网站广州公司电商网站建设
  • 滨州 网站开发市场推广方式有哪几种
  • 网站建设与制作实现精准营销Wordpress上传万网空间
  • 网站做的简单是什么意思个人网站的基本风格
  • 微商水印相机做网站家乡网站建设可行性分析
  • 广州市花都区建设局网站免费做app
  • 网站建设公司响应式网站模板泉山微网站开发
  • 商品定制平台网站中国住房建设网官方网站
  • 企业做网站 里面都写什么深圳专业商城网站
  • 广州公司网站制作费用郑州营销型网站制作
  • 电子商城网站怎么做seo网站排名优化教程
  • 做窗帘网站图片大全集团公司网页设计
  • 网站域名变更怎么查网页制作考试素材
  • 扫码员在哪个网站可以做文网文许可证
  • 查询网站空间商社团网站建设
  • 建设网站的收费免费的免抠图素材网站
  • 做3d图的网站有哪些软件西部数码上传网站
  • 互联网建站公司有哪些国内app开发商
  • 哪个网站的理财频道做的比较好成都网站设计报价
  • 网站空间源码一个新网站要怎么做seo
  • 网站服务公司网站友情链接有什么用
  • 网站建设方案免费下载在哪个网站做民营企业申报
  • 微网站怎么注册中外网站建设区别
  • 大东吴建设新材料公司网站开源网站建设是什么工作
  • 原墨网站建设网站开发投标文件服务承诺部分
  • 营销型网站跟云网站wordpress获取手机号
  • 网站开发项目组织架构wordpress需要多大数据库
  • 宜昌优化网站建设php成品网站源码
  • 贵阳网站建设钟鼎网络网站平台建设需要哪些人员
  • 怎样优古网络公司网站后台济南seo整站外包