public IConfigInit UseDatabase <TRepository>(string conString, DatabaseType dbType) where TRepository : class, IRepository
        {
            if (ShardingConfig.ServiceDescriptors != null)
            {
                ShardingConfig.ServiceDescriptors.AddScoped(_ =>
                {
                    IRepository repository = DbFactory.GetRepository(conString, dbType);
                    if (ShardingConfig.LogicDelete)
                    {
                        repository = new LogicDeleteRepository(repository);
                    }

                    if (typeof(TRepository) == typeof(IRepository))
                    {
                        return((TRepository)repository);
                    }
                    else
                    {
                        return(repository.ActLike <TRepository>());
                    }
                });
            }

            return(this);
        }
Exemple #2
0
        public IConfigInit UseDatabase<TRepository>(string conString, DatabaseType dbType) where TRepository : class, IRepository
        {
            if (ShardingConfig.ServiceDescriptors != null)
            {
                ShardingConfig.ServiceDescriptors.AddScoped(_ =>
                {
                    ILoggerFactory loggerFactory = _.GetService<ILoggerFactory>();

                    IRepository repository = DbFactory.GetRepository(conString, dbType, loggerFactory);
                    if (ShardingConfig.LogicDelete)
                        repository = new LogicDeleteRepository(repository);

                    if (typeof(TRepository) == typeof(IRepository))
                        return (TRepository)repository;
                    else
                        return repository.ActLike<TRepository>();
                });
            }

            return this;
        }