日期:2014-05-17  浏览次数:20917 次

c# 如何让程序实现事务 类似于c#里面的数据库事务Transaction
 
我知道c#里面有个数据库的事务 ,但这个操作只能通过传递sql 语句或者存储过程执行 

上代码:

C# code

        public override int ExecuteTransaction(Func<bool>[] arrayFunc)  //要执行的委托数组
        {
                arrayFunc.ToList().ForEach(func =>
                {
                    if (func())  //如果这个委托执行成功
                    {
                        count++;
                    }
                });
                if (count == arrayFunc.Count())     //如果全部执行成功
                {
                    Commit();  //提交事务
                }
                else
                {
                    count = 0;
                    Rollback();  //回滚事务
                }
            return count;

        }
        
        调用:
        new BLL.Mem_Member().ExecuteTransaction(new Func<bool>[] 
            {
                 () => new BLL.Mem_Exchange().Add(exchange)==null,   
                 () => new BLL.Mem_Member().Update(member)>0    
            })


求解 如何实现


------解决方案--------------------
你创建副本,提交时跟新到源数据,回滚就不操作了
------解决方案--------------------
可参考