コード例 #1
0
ファイル: DbContext.cs プロジェクト: panda-big/Chloe
 public void UseTransaction(Action action, IsolationLevel il)
 {
     PublicHelper.CheckNull(action);
     using (ITransientTransaction tran = this.BeginTransaction(il))
     {
         action();
         tran.Commit();
     }
 }
コード例 #2
0
        public async Task UseTransaction(Func <Task> func, IsolationLevel il)
        {
            PublicHelper.CheckNull(func);
            using (ITransientTransaction tran = this.BeginTransaction(il))
            {
                await func();

                tran.Commit();
            }
        }
コード例 #3
0
        public virtual void DoWithTransaction()
        {
            /*--------------1--------------*/
            using (ITransientTransaction tran = this.DbContext.BeginTransaction())
            {
                /* do some things here */
                this.DbContext.Update <Person>(a => a.Id == 1, a => new Person()
                {
                    Name = a.Name, Age = a.Age + 1, Gender = Gender.Male, EditTime = DateTime.Now
                });
                this.DbContext.Delete <Person>(a => a.Id == 1024);

                tran.Commit();
            }
            ConsoleHelper.WriteLineAndReadKey();



            /*--------------2--------------*/
            this.DbContext.UseTransaction(() =>
            {
                this.DbContext.Update <Person>(a => a.Id == 1, a => new Person()
                {
                    Name = a.Name, Age = a.Age + 1, Gender = Gender.Male, EditTime = DateTime.Now
                });
                this.DbContext.Delete <Person>(a => a.Id == 1024);
            });
            ConsoleHelper.WriteLineAndReadKey();



            /*--------------3--------------*/
            this.DbContext.Session.BeginTransaction();
            try
            {
                /* do some things here */
                this.DbContext.Update <Person>(a => a.Id == 1, a => new Person()
                {
                    Name = a.Name, Age = a.Age + 1, Gender = Gender.Male, EditTime = DateTime.Now
                });
                this.DbContext.Delete <Person>(a => a.Id == 1024);

                this.DbContext.Session.CommitTransaction();
            }
            catch
            {
                if (this.DbContext.Session.IsInTransaction)
                {
                    this.DbContext.Session.RollbackTransaction();
                }
                throw;
            }
            ConsoleHelper.WriteLineAndReadKey();
        }
コード例 #4
0
        public static void DoWithTransaction()
        {
            using (ITransientTransaction tran = context.BeginTransaction())
            {
                /* do some things here */
                context.Update <User>(a => a.Id == 1, a => new User()
                {
                    Name = a.Name, Age = a.Age + 1, Gender = Gender.Man, OpTime = DateTime.Now
                });
                context.Delete <User>(a => a.Id == 1024);

                tran.Commit();
            }

            ConsoleHelper.WriteLineAndReadKey();
        }
コード例 #5
0
        public virtual void DoWithTransaction()
        {
            using (ITransientTransaction tran = this.DbContext.BeginTransaction())
            {
                /* do some things here */
                this.DbContext.Update <Person>(a => a.Id == 1, a => new Person()
                {
                    Name = a.Name, Age = a.Age + 1, Gender = Gender.Male, EditTime = DateTime.Now
                });
                this.DbContext.Delete <Person>(a => a.Id == 1024);

                tran.Commit();
            }

            ConsoleHelper.WriteLineAndReadKey();
        }
コード例 #6
0
ファイル: DbContext.cs プロジェクト: panda-big/Chloe
        public void UseTransaction(Action action)
        {
            /*
             * dbContext.UseTransaction(() =>
             * {
             *     dbContext.Insert()...
             *     dbContext.Update()...
             *     dbContext.Delete()...
             * });
             */

            PublicHelper.CheckNull(action);
            using (ITransientTransaction tran = this.BeginTransaction())
            {
                action();
                tran.Commit();
            }
        }
コード例 #7
0
        public async Task UseTransaction(Func <Task> func)
        {
            /*
             * await dbContext.UseTransaction(async () =>
             * {
             *     await dbContext.InsertAsync()...
             *     await dbContext.UpdateAsync()...
             *     await dbContext.DeleteAsync()...
             * });
             */

            PublicHelper.CheckNull(func);
            using (ITransientTransaction tran = this.BeginTransaction())
            {
                await func();

                tran.Commit();
            }
        }