MVC EF开启事务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23502409/article/details/89883743
   using (var tran = BE.Database.BeginTransaction())
                    {
                        try
                        {
                            //批量操作前 关闭自动检测变化功能
                            BE.Configuration.AutoDetectChangesEnabled = false;
                            ReportConfig RC = new ReportConfig();
                            RC.ID = Guid.NewGuid().ToString();
                            RC.ReportName = getImportInfo.Reports[0].Name;
                            RC.ReportID = getImportInfo.Reports[0].Id;
                            RC.CreateTime = DateTime.Now;
                            RC.Creator = CurrentUser.UserAccount;
                            RC.ReportDesc = "上传PBI报表";
                            RC.ReportGroupID = groupID;
                            RC.ReportUrl = "";
                            RC.Validity = "1";
                            RC.ReportType = "PBIC";
                            BE.ReportConfig.Add(RC);

                            UserUploadReport uur = new UserUploadReport();
                            uur.ID = Guid.NewGuid().ToString();
                            uur.UserAccount = CurrentUser.UserAccount;
                            uur.ReportID = getImportInfo.Reports[0].Id;
                            uur.FolderID = folderID;
                            uur.Validity = "1";
                            uur.Creater = CurrentUser.UserAccount;
                            uur.CreateTime = DateTime.Now;
                            BE.UserUploadReport.Add(uur);

                            FolderReportAssignment fra = new FolderReportAssignment();
                            fra.ID = Guid.NewGuid().ToString();
                            fra.FolderID = folderID;
                            fra.ReportID = getImportInfo.Reports[0].Id;
                            fra.Validity = "1";
                            fra.CreateTime = DateTime.Now;
                            fra.Creater = CurrentUser.UserAccount;
                            fra.Updater = CurrentUser.UserAccount;
                            fra.UpdateTime = DateTime.Now;
                            BE.FolderReportAssignment.Add(fra);
                            //开启自动检测变化
                            BE.Configuration.AutoDetectChangesEnabled = true;
                            int resultInt = BE.SaveChanges();
                            tran.Commit();//提交事务
                            obj = new
                            {
                                code = resultInt,
                                reportID = getImportInfo.Reports[0].Id
                            };
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback(); //事务回滚
                            obj = new
                            {
                                code = 0,
                                reportID = string.Empty
                            };
                            log.Error("上传报表失败!" + ex);
                        }
                    }

猜你喜欢

转载自blog.csdn.net/qq_23502409/article/details/89883743
今日推荐