首页 > 编程语言 > 详细

OA项目线程内共享上下文实例(二)

时间:2017-02-12 22:31:20      阅读:232      评论:0      收藏:0      [点我收藏+]

DbSession的作用:

1.拥有所有Dal的实例。

2.SaveChange()把实体进行一次整体的提交

 public class DbSession
    {
       public IUserInfoDal UserInfoDal
       {
           get
           {
               return StaticDalFactory.GetUserInfoDal();
           }
       }
       public IOrderInfoDal OrderInfoDal { 
           get  
           {
               return StaticDalFactory.GetOrderInfoDal();
           }  
       }

       /// <summary>
       /// 拿到当前的EF的上下文,然后进行 把修改实体进行一个整体提交。
       /// </summary>
       /// <returns></returns>
       public int SaveChanges()
       {
           return DbContextFactory.GetCurrentDbContext().SaveChanges();
       }
    }

 IDbSession的代码:

 public interface IDbSession
    {
       IUserInfoDal UserInfoDal { get; }
       IOrderInfoDal OrderInfoDal { get; }
       int SaveChanges();
    }

 DbContextFactory的GetCurrentDbContext方法:

 public class DbContextFactory
       {
           public static DbContext GetCurrentDbContext()
           {
               //一次请求共用一个实例
               DbContext db = CallContext.GetData("DbContext") as DbContext;
               if (db == null)
               {
                   db = new DataModelContainer();
                   CallContext.SetData("DbContext", db);
               }
               return db;
           }
       }

 

OA项目线程内共享上下文实例(二)

原文:http://www.cnblogs.com/sunliyuan/p/6391818.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!