Beispiel #1
0
        /// <summary>
        /// Close all db context
        /// </summary>
        public static void CloseAllDbContext()
        {
            HttpContext context = HttpContext.Current;

            if (context != null && context.Session != null)
            {
                EFDbContextStorage ctxStorage = context.Session[STORAGE_KEY] as EFDbContextStorage;

                if (ctxStorage != null)
                {
                    foreach (EFDbContext ctx in ctxStorage.GetAllDbContexts())
                    {
                        if (ctx.Database.Connection.State == System.Data.ConnectionState.Open)
                        {
                            ctx.Database.Connection.Close();
                        }

                        if (ctx.ObjectContext.Connection.State == System.Data.ConnectionState.Open)
                        {
                            ctx.Database.Connection.Close();
                        }

                        ctx.ObjectContext.Dispose();
                        ctx.Dispose();
                    }

                    context.Session.Remove(STORAGE_KEY);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Get all DB Context
        /// </summary>
        /// <returns></returns>
        public static IEnumerable <EFDbContext> GetAllEFDbContext()
        {
            HttpContext context = HttpContext.Current;

            if (context != null && context.Session != null)
            {
                EFDbContextStorage ctxStorage = context.Session[STORAGE_KEY] as EFDbContextStorage;
                return(ctxStorage.GetAllDbContexts());
            }
            else
            {
                return(null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Add DBContext to store
        /// </summary>
        /// <param name="key"></param>
        /// <param name="dbContext"></param>
        public static void AddEFDbContextToStore(string key, EFDbContext dbContext)
        {
            HttpContext context = HttpContext.Current;

            if (context != null && context.Session != null)
            {
                EFDbContextStorage ctxStorage = context.Session[STORAGE_KEY] as EFDbContextStorage;

                if (ctxStorage == null)
                {
                    ctxStorage = new EFDbContextStorage();
                }

                ctxStorage.SetEFDbContextForKey(key, dbContext);
                context.Session[STORAGE_KEY] = ctxStorage;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Get DB context for key (Per session)
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static EFDbContext GetEFDbContextForKey(string key)
        {
            EFDbContext dbContext = null;
            HttpContext context   = HttpContext.Current;

            if (context != null && context.Session != null)
            {
                EFDbContextStorage ctxStorage = context.Session[STORAGE_KEY] as EFDbContextStorage;

                if (ctxStorage != null)
                {
                    dbContext = ctxStorage.GetEFDbContextForKey(key);
                }
            }

            return(dbContext);
        }