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); }
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; }