示例#1
0
        public static T Get <T>(string key, string folder = null)
        {
            try
            {
                var cacheMode = MixCommonHelper.GetWebEnumConfig <MixCacheMode>(WebConfiguration.MixCacheMode);
                switch (cacheMode)
                {
                case MixCacheMode.Database:
                    return(GetFromDatabase <T>(key, folder));

                case MixCacheMode.Binary:
                    return(GetFromBinary <T>(key, folder));

                case MixCacheMode.Base64:
                    return(GetFromBase64 <T>(key, folder));

                case MixCacheMode.Json:
                default:
                    return(GetFromJson <T>(key, folder));
                }
            }
            catch (Exception ex)
            {
                //TODO Handle Exception
                Console.WriteLine(ex);
                return(default(T));
            }
        }
示例#2
0
        public static MixCacheDbContext GetCacheDbContext()
        {
            var dbProvider = MixCommonHelper.GetWebEnumConfig <MixDatabaseProvider>(WebConfiguration.MixCacheDbProvider);

            switch (dbProvider)
            {
            case MixDatabaseProvider.MSSQL:
                return(new MsSqlCacheDbContext());

            case MixDatabaseProvider.MySQL:
                return(new MySqlCacheDbContext());

            case MixDatabaseProvider.SQLITE:
                return(new SqliteCacheDbContext());

            case MixDatabaseProvider.PostgreSQL:
                return(new PostgresCacheDbContext());

            default:
                return(null);
            }
        }
示例#3
0
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            string cnn = MixCommonHelper.GetWebConfig <string>(WebConfiguration.MixCacheConnectionString);

            if (!string.IsNullOrEmpty(cnn))
            {
                var provider = MixCommonHelper.GetWebEnumConfig <MixDatabaseProvider>(WebConfiguration.MixCacheDbProvider);
                switch (provider)
                {
                case MixDatabaseProvider.MSSQL:
                    optionsBuilder.UseSqlServer(cnn);
                    break;

                case MixDatabaseProvider.MySQL:
                    optionsBuilder.UseMySql(cnn, ServerVersion.AutoDetect(cnn));
                    break;

                case MixDatabaseProvider.SQLITE:
                    optionsBuilder.UseSqlite(cnn);
                    break;

                case MixDatabaseProvider.PostgreSQL:
                    optionsBuilder.UseNpgsql(cnn);
                    break;

                default:
                    break;
                }
            }
            else
            {
                optionsBuilder.UseSqlite($"Data Source=MixContent\\mix_cache.db");
            }

            base.OnConfiguring(optionsBuilder);
        }