代码已托管在  https://code.csdn.net/denghao156/ktnmb_mvc4

先上图,设计模式参考:ddmvc4.codeplex.com

MVC4商城项目一:框架设计

MVC4商城项目一:框架设计

一、unintofwork  设计模式  http://www.cnblogs.com/zxj159/p/3505457.html
     Unit Of Work模式会记录所有对象模型修改过的信息,在提交的时候,一次性修改,并把结果同步到数据库。 这个过程通常被封装在事务中。所以在DAL中采用Unit Of Work模式好处就在于能够确保数据的完整性,如果在持有一系列业务对象(同属于一个事务)的过程中出现问题,就可以将所有的修改回滚,以确保数据始终处于有效状态,不会出现脏数据。
1.1:Kt.DAL.UnitOfWork
   UnitOfWork  继承  DbContext 实现对实体模型的增删改查,通过base.SaveChanges() 来实现数据的更新,从而把缓存区的上下文更改的数据一次提交到数据来实现事务。
public UnitOfWork()
            : base("name=EntitiesDb")
        {
            this.Configuration.ProxyCreationEnabled = true;
           this.Configuration.LazyLoadingEnabled = true;
        }

     public void Commit()
        {
            base.SaveChanges();
        }

        public void CommitAndRefreshChanges()
        {
            bool saveFailed = false;

            do
            {
                try
                {
                    base.SaveChanges();

                    saveFailed = false;

                }
                catch (DbUpdateConcurrencyException ex)
                {
                    saveFailed = true;

                    ex.Entries.ToList()
                              .ForEach(entry =>
                              {
                                  entry.OriginalValues.SetValues(entry.GetDatabaseValues());
                              });

                }
            } while (saveFailed);

        }

        public void RollbackChanges()
        {
            base.ChangeTracker.Entries()
                              .ToList()
                              .ForEach(entry => entry.State = EntityState.Unchanged);
        }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
  • 2021-10-21
  • 2021-05-29
  • 2022-02-09
  • 2021-12-16
  • 2021-12-02
猜你喜欢
  • 2022-12-23
  • 2021-11-01
  • 2022-01-15
  • 2021-12-06
  • 2021-06-29
  • 2021-12-21
  • 2021-05-04
相关资源
相似解决方案