/// <summary> /// 使用EFCoreSharding /// </summary> /// <param name="services">服务集合</param> /// <param name="configInit">分表配置项</param> /// <returns></returns> public static IServiceCollection UseEFCoreSharding(this IServiceCollection services, Action <IConfigInit> configInit) { if (ServiceDescriptors == null) { ServiceDescriptors = services; } if (configInit != null) { Init(configInit); } services.AddScoped(_ => { return(DbFactory.GetShardingDbAccessor()); }); return(services); }
/// <summary> /// 转为Sharding /// </summary> /// <typeparam name="T">实体泛型</typeparam> /// <param name="source">数据源</param> /// <param name="absDbName">抽象数据库</param> /// <returns>IShardingQueryable</returns> public static IShardingQueryable <T> ToSharding <T>(this IQueryable <T> source, string absDbName = ShardingConfig.DefaultAbsDbName) where T : class, new() { ShardingConfig.CheckInit(); return(new ShardingQueryable <T>(source, DbFactory.GetShardingDbAccessor(absDbName) as ShardingDbAccessor, absDbName)); }