/// <summary> /// Make sure the EF context is unique in a thread. /// </summary> /// <returns></returns> public static DbContext CreateDbContext() { DbContext dbContext = (DbContext)CallContext.GetData("dbContext"); if (dbContext == null) { dbContext = new DataModelContainer1(); CallContext.SetData("dbContext", dbContext); } return(dbContext); }
/// <summary> /// 帮我们返回当前线程内的数据库上下文,如果当前线程内没有上下文,那么创建一个上下文,并保证 /// 上线问实例在线程内部是唯一的 /// </summary> /// <returns></returns> public static DbContext GetCurrentDbContext() { var dbContext = CallContext.GetData("DbContext") as DbContext; if (dbContext == null) //线程在数据槽里面没有此上下文 { dbContext = new DataModelContainer1(); //创建一个EF上下文 CallContext.SetData("DbContext", dbContext); } return(dbContext); }