Пример #1
0
        public DbContext CreateDbContext(WirteOrRead dbType)
        {
            DbContext dbContext = null;

            if (dbType == WirteOrRead.Write)
            {
                dbContext = CallContext.GetData(WirteOrRead.Write);

                if (dbContext == null)
                {
                    var optionsBuilder = new DbContextOptionsBuilder <AdncDbContext>();
                    optionsBuilder.UseMySql(_configuration.GetValue <string>("Mysql:WriteDb:ConnectionString")
                                            , mySqlOptions => mySqlOptions.ServerVersion(new ServerVersion(new Version("5.5.56-MariaDB"), ServerType.MySql))
                                            );
                    dbContext = new AdncDbContext(optionsBuilder.Options, _userContext);
                    CallContext.SetData(WirteOrRead.Write, dbContext);
                }
            }
            return(dbContext);
        }
Пример #2
0
 public static DbContext GetData(WirteOrRead name) =>
 state.TryGetValue(name.ToString(), out AsyncLocal <DbContext> data) ? data.Value : null;
Пример #3
0
 public static void SetData(WirteOrRead name, DbContext data) =>
 state.GetOrAdd(name.ToString(), _ => new AsyncLocal <DbContext>()).Value = data;