From 27c97a0e5150b69034f3f0ec7b943d11368b4bf2 Mon Sep 17 00:00:00 2001 From: xuejiaming <326308290@qq.com> Date: Wed, 25 Aug 2021 19:02:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B9=E7=9B=AE=E6=9E=B6?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DbContexts/DefaultTableDbContext.cs | 1 - .../Controllers/ValuesController.cs | 18 ++++++++++-- .../DbContexts/DefaultTableDbContext.cs | 11 ++----- .../Shardings/SysUserModVirtualTableRoute.cs | 2 ++ .../Sample.SqlServer/Shardings/TestVRoute.cs | 1 + .../Sample.SqlServer3x/DefaultDbContext.cs | 1 - .../AbstractShardingAbpDbContext.cs | 2 +- .../DbContexts/DefaultTableDbContext.cs | 2 +- .../Core/VirtualRoutes/RouteTailFactory.cs | 15 +++++----- .../Abstractions/IMultiQueryRouteTail.cs | 14 ++++----- .../Abstractions/IRouteTail.cs | 4 +-- .../Abstractions/IRouteTailFactory.cs | 3 +- .../Abstractions/ISingleQueryRouteTail.cs | 4 +-- .../RouteTails/MultiQueryRouteTail.cs | 2 +- .../RouteTails/SingleQueryRouteTail.cs | 2 +- ...AbstractShardingAssertVirtualTableRoute.cs | 17 +++++++++++ ...stractShardingOperatorVirtualTableRoute.cs | 2 +- .../AbstractVirtualTableRoute.cs | 2 +- src/ShardingCore/DIExtension.cs | 2 +- .../ShardingDbContextOptions.cs | 2 +- .../EFCores/ShardingModelCustomizer.cs | 2 +- .../Sharding/AbstractShardingDbContext.cs | 29 ++++++++----------- .../Abstractions/IShardingDbContext.cs | 19 +++++------- .../Abstractions/IShardingTableDbContext.cs | 6 +--- .../Sharding/StreamMergeContext.cs | 4 +-- .../Sharding/StreamMergeContextFactory.cs | 2 +- src/ShardingCore/ShardingBootstrapper.cs | 2 +- .../TableCreator/ShardingTableCreator.cs | 23 +++++++-------- ...hardingTimeKeyDateTimeVirtualTableRoute.cs | 1 + ...actShardingTimeKeyLongVirtualTableRoute.cs | 1 + ...impleShardingModKeyIntVirtualTableRoute.cs | 1 + ...leShardingModKeyStringVirtualTableRoute.cs | 1 + .../DefaultDbContext.cs | 1 - test/ShardingCore.Test50/DefaultDbContext.cs | 2 +- test/ShardingCore.Test50/ShardingTest.cs | 5 ++++ .../SysUserSalaryVirtualTableRoute.cs | 1 + test/ShardingCore.Test50_2x/ShardingTest.cs | 4 +++ test/ShardingCore.Test50_3x/ShardingTest.cs | 4 +++ 38 files changed, 117 insertions(+), 98 deletions(-) rename src/ShardingCore/Core/VirtualRoutes/{ => RouteTails}/Abstractions/IMultiQueryRouteTail.cs (65%) rename src/ShardingCore/Core/VirtualRoutes/{ => RouteTails}/Abstractions/IRouteTail.cs (75%) rename src/ShardingCore/Core/VirtualRoutes/{ => RouteTails}/Abstractions/IRouteTailFactory.cs (82%) rename src/ShardingCore/Core/VirtualRoutes/{ => RouteTails}/Abstractions/ISingleQueryRouteTail.cs (81%) create mode 100644 src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractShardingAssertVirtualTableRoute.cs rename src/ShardingCore/Core/VirtualRoutes/TableRoutes/{ => Abstractions}/AbstractShardingOperatorVirtualTableRoute.cs (97%) rename src/ShardingCore/Core/VirtualRoutes/TableRoutes/{ => Abstractions}/AbstractVirtualTableRoute.cs (98%) diff --git a/samples/Sample.MySql/DbContexts/DefaultTableDbContext.cs b/samples/Sample.MySql/DbContexts/DefaultTableDbContext.cs index 7e081195..e63b3db5 100644 --- a/samples/Sample.MySql/DbContexts/DefaultTableDbContext.cs +++ b/samples/Sample.MySql/DbContexts/DefaultTableDbContext.cs @@ -1,7 +1,6 @@ using Microsoft.EntityFrameworkCore; using Sample.MySql.Domain.Maps; using ShardingCore.Core.VirtualRoutes.Abstractions; -using ShardingCore.DbContexts.ShardingDbContexts; using ShardingCore.Sharding.Abstractions; namespace Sample.MySql.DbContexts diff --git a/samples/Sample.SqlServer/Controllers/ValuesController.cs b/samples/Sample.SqlServer/Controllers/ValuesController.cs index 8ddcbc1f..5e0a1b71 100644 --- a/samples/Sample.SqlServer/Controllers/ValuesController.cs +++ b/samples/Sample.SqlServer/Controllers/ValuesController.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; @@ -6,6 +7,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using Sample.SqlServer.DbContexts; using Sample.SqlServer.Domain.Entities; +using ShardingCore.Core.QueryRouteManagers.Abstractions; using ShardingCore.DbContexts.VirtualDbContexts; using ShardingCore.Extensions; @@ -21,10 +23,12 @@ namespace Sample.SqlServer.Controllers { private readonly DefaultShardingDbContext _defaultTableDbContext; + private readonly IShardingRouteManager _shardingRouteManager; - public ValuesController(DefaultShardingDbContext defaultTableDbContext) + public ValuesController(DefaultShardingDbContext defaultTableDbContext,IShardingRouteManager shardingRouteManager) { _defaultTableDbContext = defaultTableDbContext; + _shardingRouteManager = shardingRouteManager; } [HttpGet] @@ -56,11 +60,19 @@ namespace Sample.SqlServer.Controllers _defaultTableDbContext.Attach(sysUserMod98); sysUserMod98.Name = "name_update" + new Random().Next(1, 99) + "_98"; await _defaultTableDbContext.SaveChangesAsync(); - var stu = new STU() { Id = "198"}; + var stu = new STU() { Id = "198" }; var sresultx111x = _defaultTableDbContext.Set().FirstOrDefault(o => o.Id == stu.Id); var pageResult = await _defaultTableDbContext.Set().Skip(10).Take(10).OrderBy(o => o.Age).ToListAsync(); - return Ok(sresultx111); + + + using (_shardingRouteManager.CreateScope()) + { + _shardingRouteManager.Current.Must.TryAdd(typeof(SysUserMod), new HashSet() { "00" }); + + var mod00s = await _defaultTableDbContext.Set().Skip(10).Take(11).ToListAsync(); + } + return Ok(); } } } \ No newline at end of file diff --git a/samples/Sample.SqlServer/DbContexts/DefaultTableDbContext.cs b/samples/Sample.SqlServer/DbContexts/DefaultTableDbContext.cs index e93843ac..81d24db0 100644 --- a/samples/Sample.SqlServer/DbContexts/DefaultTableDbContext.cs +++ b/samples/Sample.SqlServer/DbContexts/DefaultTableDbContext.cs @@ -1,16 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using Sample.SqlServer.Domain.Maps; -using ShardingCore.Core.VirtualRoutes.Abstractions; -using ShardingCore.DbContexts.ShardingDbContexts; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Sharding.Abstractions; namespace Sample.SqlServer.DbContexts { - public class DefaultTableDbContext: DbContext,IShardingTableDbContext + public class DefaultTableDbContext: DbContext, IShardingTableDbContext { public DefaultTableDbContext(DbContextOptions options) :base(options) { diff --git a/samples/Sample.SqlServer/Shardings/SysUserModVirtualTableRoute.cs b/samples/Sample.SqlServer/Shardings/SysUserModVirtualTableRoute.cs index f412ae58..d636f4cf 100644 --- a/samples/Sample.SqlServer/Shardings/SysUserModVirtualTableRoute.cs +++ b/samples/Sample.SqlServer/Shardings/SysUserModVirtualTableRoute.cs @@ -16,6 +16,8 @@ namespace Sample.SqlServer.Shardings */ public class SysUserModVirtualTableRoute : AbstractSimpleShardingModKeyStringVirtualTableRoute { + protected override bool EnableHintRoute => true; + public SysUserModVirtualTableRoute() : base(2,3) { } diff --git a/samples/Sample.SqlServer/Shardings/TestVRoute.cs b/samples/Sample.SqlServer/Shardings/TestVRoute.cs index 8d197685..84d013d8 100644 --- a/samples/Sample.SqlServer/Shardings/TestVRoute.cs +++ b/samples/Sample.SqlServer/Shardings/TestVRoute.cs @@ -7,6 +7,7 @@ using Sample.SqlServer.Domain.Entities; using ShardingCore.Core; using ShardingCore.Core.VirtualRoutes; using ShardingCore.Core.VirtualRoutes.TableRoutes; +using ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions; namespace Sample.SqlServer.Shardings { diff --git a/samples/Sample.SqlServer3x/DefaultDbContext.cs b/samples/Sample.SqlServer3x/DefaultDbContext.cs index f5c0e549..b7e0c585 100644 --- a/samples/Sample.SqlServer3x/DefaultDbContext.cs +++ b/samples/Sample.SqlServer3x/DefaultDbContext.cs @@ -1,7 +1,6 @@ using Microsoft.EntityFrameworkCore; using Sample.SqlServer3x.Domain.Maps; using ShardingCore.Core.VirtualRoutes.Abstractions; -using ShardingCore.DbContexts.ShardingDbContexts; using ShardingCore.Sharding.Abstractions; namespace Sample.SqlServer3x diff --git a/samples/Samples.AbpSharding/AbstractShardingAbpDbContext.cs b/samples/Samples.AbpSharding/AbstractShardingAbpDbContext.cs index f7528579..e94ba5c9 100644 --- a/samples/Samples.AbpSharding/AbstractShardingAbpDbContext.cs +++ b/samples/Samples.AbpSharding/AbstractShardingAbpDbContext.cs @@ -10,7 +10,7 @@ using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.EntityFrameworkCore.Storage; using ShardingCore; using ShardingCore.Core; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualRoutes.TableRoutes; using ShardingCore.Core.VirtualTables; using ShardingCore.DbContexts; diff --git a/samples/Samples.AutoByDate.SqlServer/DbContexts/DefaultTableDbContext.cs b/samples/Samples.AutoByDate.SqlServer/DbContexts/DefaultTableDbContext.cs index 2dd19a3a..0058c8ab 100644 --- a/samples/Samples.AutoByDate.SqlServer/DbContexts/DefaultTableDbContext.cs +++ b/samples/Samples.AutoByDate.SqlServer/DbContexts/DefaultTableDbContext.cs @@ -1,6 +1,6 @@ using Microsoft.EntityFrameworkCore; using Samples.AutoByDate.SqlServer.Domain.Maps; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Sharding.Abstractions; namespace Samples.AutoByDate.SqlServer.DbContexts diff --git a/src/ShardingCore/Core/VirtualRoutes/RouteTailFactory.cs b/src/ShardingCore/Core/VirtualRoutes/RouteTailFactory.cs index dae9a529..a7c08265 100644 --- a/src/ShardingCore/Core/VirtualRoutes/RouteTailFactory.cs +++ b/src/ShardingCore/Core/VirtualRoutes/RouteTailFactory.cs @@ -1,18 +1,17 @@ -using System; -using ShardingCore.Core.VirtualRoutes.Abstractions; using ShardingCore.Core.VirtualRoutes.RouteTails; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine; using ShardingCore.Exceptions; using ShardingCore.Extensions; namespace ShardingCore.Core.VirtualRoutes { -/* -* @Author: xjm -* @Description: -* @Date: Sunday, 22 August 2021 14:58:58 -* @Email: 326308290@qq.com -*/ + /* + * @Author: xjm + * @Description: + * @Date: Sunday, 22 August 2021 14:58:58 + * @Email: 326308290@qq.com + */ public class RouteTailFactory:IRouteTailFactory { public IRouteTail Create(string tail) diff --git a/src/ShardingCore/Core/VirtualRoutes/Abstractions/IMultiQueryRouteTail.cs b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IMultiQueryRouteTail.cs similarity index 65% rename from src/ShardingCore/Core/VirtualRoutes/Abstractions/IMultiQueryRouteTail.cs rename to src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IMultiQueryRouteTail.cs index 16cdf76f..62fda030 100644 --- a/src/ShardingCore/Core/VirtualRoutes/Abstractions/IMultiQueryRouteTail.cs +++ b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IMultiQueryRouteTail.cs @@ -1,14 +1,14 @@ using System; using System.Collections.Generic; -namespace ShardingCore.Core.VirtualRoutes.Abstractions +namespace ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions { -/* -* @Author: xjm -* @Description: -* @Date: Sunday, 22 August 2021 09:44:54 -* @Email: 326308290@qq.com -*/ + /* + * @Author: xjm + * @Description: + * @Date: Sunday, 22 August 2021 09:44:54 + * @Email: 326308290@qq.com + */ public interface IMultiQueryRouteTail:IRouteTail { /// diff --git a/src/ShardingCore/Core/VirtualRoutes/Abstractions/IRouteTail.cs b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IRouteTail.cs similarity index 75% rename from src/ShardingCore/Core/VirtualRoutes/Abstractions/IRouteTail.cs rename to src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IRouteTail.cs index ad5a5510..e4377eb6 100644 --- a/src/ShardingCore/Core/VirtualRoutes/Abstractions/IRouteTail.cs +++ b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IRouteTail.cs @@ -1,6 +1,4 @@ -using System; - -namespace ShardingCore.Core.VirtualRoutes.Abstractions +namespace ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions { /* * @Author: xjm diff --git a/src/ShardingCore/Core/VirtualRoutes/Abstractions/IRouteTailFactory.cs b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IRouteTailFactory.cs similarity index 82% rename from src/ShardingCore/Core/VirtualRoutes/Abstractions/IRouteTailFactory.cs rename to src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IRouteTailFactory.cs index 2780980e..e7e90cee 100644 --- a/src/ShardingCore/Core/VirtualRoutes/Abstractions/IRouteTailFactory.cs +++ b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/IRouteTailFactory.cs @@ -1,7 +1,6 @@ -using System; using ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine; -namespace ShardingCore.Core.VirtualRoutes.Abstractions +namespace ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions { /* * @Author: xjm diff --git a/src/ShardingCore/Core/VirtualRoutes/Abstractions/ISingleQueryRouteTail.cs b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/ISingleQueryRouteTail.cs similarity index 81% rename from src/ShardingCore/Core/VirtualRoutes/Abstractions/ISingleQueryRouteTail.cs rename to src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/ISingleQueryRouteTail.cs index 87a4c9fb..816753a6 100644 --- a/src/ShardingCore/Core/VirtualRoutes/Abstractions/ISingleQueryRouteTail.cs +++ b/src/ShardingCore/Core/VirtualRoutes/RouteTails/Abstractions/ISingleQueryRouteTail.cs @@ -1,6 +1,4 @@ -using System; - -namespace ShardingCore.Core.VirtualRoutes.Abstractions +namespace ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions { /* * @Author: xjm diff --git a/src/ShardingCore/Core/VirtualRoutes/RouteTails/MultiQueryRouteTail.cs b/src/ShardingCore/Core/VirtualRoutes/RouteTails/MultiQueryRouteTail.cs index 0641bc40..2d09bf28 100644 --- a/src/ShardingCore/Core/VirtualRoutes/RouteTails/MultiQueryRouteTail.cs +++ b/src/ShardingCore/Core/VirtualRoutes/RouteTails/MultiQueryRouteTail.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine; using ShardingCore.Extensions; diff --git a/src/ShardingCore/Core/VirtualRoutes/RouteTails/SingleQueryRouteTail.cs b/src/ShardingCore/Core/VirtualRoutes/RouteTails/SingleQueryRouteTail.cs index 14c02b8d..d588e532 100644 --- a/src/ShardingCore/Core/VirtualRoutes/RouteTails/SingleQueryRouteTail.cs +++ b/src/ShardingCore/Core/VirtualRoutes/RouteTails/SingleQueryRouteTail.cs @@ -1,6 +1,6 @@ using System; using System.Linq; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine; using ShardingCore.Extensions; diff --git a/src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractShardingAssertVirtualTableRoute.cs b/src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractShardingAssertVirtualTableRoute.cs new file mode 100644 index 00000000..25016585 --- /dev/null +++ b/src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractShardingAssertVirtualTableRoute.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions +{ + /* + * @Author: xjm + * @Description: + * @Date: 2021/8/25 17:23:42 + * @Ver: 1.0 + * @Email: 326308290@qq.com + */ + public abstract class AbstractShardingAssertVirtualTableRoute : AbstractVirtualTableRoute where T : class, IShardingTable + { + } +} diff --git a/src/ShardingCore/Core/VirtualRoutes/TableRoutes/AbstractShardingOperatorVirtualTableRoute.cs b/src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractShardingOperatorVirtualTableRoute.cs similarity index 97% rename from src/ShardingCore/Core/VirtualRoutes/TableRoutes/AbstractShardingOperatorVirtualTableRoute.cs rename to src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractShardingOperatorVirtualTableRoute.cs index ec4c2679..87199674 100644 --- a/src/ShardingCore/Core/VirtualRoutes/TableRoutes/AbstractShardingOperatorVirtualTableRoute.cs +++ b/src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractShardingOperatorVirtualTableRoute.cs @@ -7,7 +7,7 @@ using ShardingCore.Exceptions; using ShardingCore.Extensions; using ShardingCore.Utils; -namespace ShardingCore.Core.VirtualRoutes.TableRoutes +namespace ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions { /* * @Author: xjm diff --git a/src/ShardingCore/Core/VirtualRoutes/TableRoutes/AbstractVirtualTableRoute.cs b/src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractVirtualTableRoute.cs similarity index 98% rename from src/ShardingCore/Core/VirtualRoutes/TableRoutes/AbstractVirtualTableRoute.cs rename to src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractVirtualTableRoute.cs index 62565897..1e4ee0ea 100644 --- a/src/ShardingCore/Core/VirtualRoutes/TableRoutes/AbstractVirtualTableRoute.cs +++ b/src/ShardingCore/Core/VirtualRoutes/TableRoutes/Abstractions/AbstractVirtualTableRoute.cs @@ -7,7 +7,7 @@ using ShardingCore.Core.QueryRouteManagers.Abstractions; using ShardingCore.Exceptions; using ShardingCore.Extensions; -namespace ShardingCore.Core.VirtualRoutes.TableRoutes +namespace ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions { /* * @Author: xjm diff --git a/src/ShardingCore/DIExtension.cs b/src/ShardingCore/DIExtension.cs index 9208fb60..013cbfcc 100644 --- a/src/ShardingCore/DIExtension.cs +++ b/src/ShardingCore/DIExtension.cs @@ -17,7 +17,7 @@ using ShardingCore.Core.QueryRouteManagers.Abstractions; using ShardingCore.Core.ShardingAccessors; using ShardingCore.Core.ShardingAccessors.Abstractions; using ShardingCore.Core.VirtualRoutes; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; namespace ShardingCore { diff --git a/src/ShardingCore/DbContexts/ShardingDbContexts/ShardingDbContextOptions.cs b/src/ShardingCore/DbContexts/ShardingDbContexts/ShardingDbContextOptions.cs index 94fd98c4..88dff10b 100644 --- a/src/ShardingCore/DbContexts/ShardingDbContexts/ShardingDbContextOptions.cs +++ b/src/ShardingCore/DbContexts/ShardingDbContexts/ShardingDbContextOptions.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Microsoft.EntityFrameworkCore; using ShardingCore.Core.VirtualRoutes; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; namespace ShardingCore.DbContexts.ShardingDbContexts { diff --git a/src/ShardingCore/EFCores/ShardingModelCustomizer.cs b/src/ShardingCore/EFCores/ShardingModelCustomizer.cs index fdc6b448..0476d10b 100644 --- a/src/ShardingCore/EFCores/ShardingModelCustomizer.cs +++ b/src/ShardingCore/EFCores/ShardingModelCustomizer.cs @@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.Extensions.DependencyInjection; using ShardingCore.Core.ShardingAccessors.Abstractions; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualTables; using ShardingCore.DbContexts.ShardingDbContexts; using ShardingCore.Extensions; diff --git a/src/ShardingCore/Sharding/AbstractShardingDbContext.cs b/src/ShardingCore/Sharding/AbstractShardingDbContext.cs index b16ef452..8950cb05 100644 --- a/src/ShardingCore/Sharding/AbstractShardingDbContext.cs +++ b/src/ShardingCore/Sharding/AbstractShardingDbContext.cs @@ -1,3 +1,15 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking; +using Microsoft.EntityFrameworkCore.Storage; +using ShardingCore.Core; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; +using ShardingCore.Core.VirtualRoutes.TableRoutes; +using ShardingCore.Core.VirtualTables; +using ShardingCore.DbContexts; +using ShardingCore.DbContexts.ShardingDbContexts; +using ShardingCore.Exceptions; +using ShardingCore.Extensions; +using ShardingCore.Sharding.Abstractions; using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -5,23 +17,6 @@ using System.Data; using System.Linq; using System.Threading; using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.ChangeTracking; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage; -using Microsoft.Extensions.Logging; -using ShardingCore.Core; -using ShardingCore.Core.VirtualRoutes; -using ShardingCore.Core.VirtualRoutes.Abstractions; -using ShardingCore.Core.VirtualRoutes.RouteTails; -using ShardingCore.Core.VirtualRoutes.TableRoutes; -using ShardingCore.Core.VirtualTables; -using ShardingCore.DbContexts; -using ShardingCore.DbContexts.ShardingDbContexts; -using ShardingCore.EFCores; -using ShardingCore.Exceptions; -using ShardingCore.Extensions; -using ShardingCore.Sharding.Abstractions; namespace ShardingCore.Sharding { diff --git a/src/ShardingCore/Sharding/Abstractions/IShardingDbContext.cs b/src/ShardingCore/Sharding/Abstractions/IShardingDbContext.cs index 556e2426..736325ec 100644 --- a/src/ShardingCore/Sharding/Abstractions/IShardingDbContext.cs +++ b/src/ShardingCore/Sharding/Abstractions/IShardingDbContext.cs @@ -1,18 +1,15 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; using Microsoft.EntityFrameworkCore; -using ShardingCore.Core.VirtualRoutes; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; +using System; namespace ShardingCore.Sharding.Abstractions { -/* -* @Author: xjm -* @Description: -* @Date: Saturday, 14 August 2021 21:47:11 -* @Email: 326308290@qq.com -*/ + /* + * @Author: xjm + * @Description: + * @Date: Saturday, 14 August 2021 21:47:11 + * @Email: 326308290@qq.com + */ public interface IShardingDbContext { Type ShardingDbContextType { get; } diff --git a/src/ShardingCore/Sharding/Abstractions/IShardingTableDbContext.cs b/src/ShardingCore/Sharding/Abstractions/IShardingTableDbContext.cs index a4c4e965..df8f4e6c 100644 --- a/src/ShardingCore/Sharding/Abstractions/IShardingTableDbContext.cs +++ b/src/ShardingCore/Sharding/Abstractions/IShardingTableDbContext.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Microsoft.EntityFrameworkCore; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; namespace ShardingCore.Sharding.Abstractions { diff --git a/src/ShardingCore/Sharding/StreamMergeContext.cs b/src/ShardingCore/Sharding/StreamMergeContext.cs index 5b1a4dac..bfb74209 100644 --- a/src/ShardingCore/Sharding/StreamMergeContext.cs +++ b/src/ShardingCore/Sharding/StreamMergeContext.cs @@ -3,13 +3,11 @@ using ShardingCore.Core.Internal.StreamMerge.ReWrite; using ShardingCore.Core.Internal.Visitors; using ShardingCore.Core.Internal.Visitors.GroupBys; using ShardingCore.Core.Internal.Visitors.Selects; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine; using ShardingCore.Sharding.Abstractions; using System.Collections.Generic; using System.Linq; -using ShardingCore.Core.ShardingAccessors; -using ShardingCore.Core.VirtualRoutes; -using ShardingCore.Core.VirtualRoutes.Abstractions; namespace ShardingCore.Sharding diff --git a/src/ShardingCore/Sharding/StreamMergeContextFactory.cs b/src/ShardingCore/Sharding/StreamMergeContextFactory.cs index 303d2304..655ed11e 100644 --- a/src/ShardingCore/Sharding/StreamMergeContextFactory.cs +++ b/src/ShardingCore/Sharding/StreamMergeContextFactory.cs @@ -2,7 +2,7 @@ using ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine; using ShardingCore.Sharding.Abstractions; using System.Linq; using ShardingCore.Core.ShardingAccessors; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; namespace ShardingCore.Sharding { diff --git a/src/ShardingCore/ShardingBootstrapper.cs b/src/ShardingCore/ShardingBootstrapper.cs index 5bc5b7d2..0145669e 100644 --- a/src/ShardingCore/ShardingBootstrapper.cs +++ b/src/ShardingCore/ShardingBootstrapper.cs @@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using ShardingCore.Core.PhysicTables; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualRoutes.TableRoutes; using ShardingCore.Core.VirtualTables; using ShardingCore.DbContexts; diff --git a/src/ShardingCore/TableCreator/ShardingTableCreator.cs b/src/ShardingCore/TableCreator/ShardingTableCreator.cs index 9f372aec..f9edc004 100644 --- a/src/ShardingCore/TableCreator/ShardingTableCreator.cs +++ b/src/ShardingCore/TableCreator/ShardingTableCreator.cs @@ -1,30 +1,27 @@ -using System; -using System.Collections.Generic; -using System.Linq; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using ShardingCore.Core; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.Core.VirtualTables; using ShardingCore.DbContexts; -using ShardingCore.DbContexts.Abstractions; -using ShardingCore.DbContexts.ShardingDbContexts; -using ShardingCore.DbContexts.VirtualDbContexts; using ShardingCore.Exceptions; using ShardingCore.Extensions; using ShardingCore.Sharding.Abstractions; +using System; +using System.Collections.Generic; +using System.Linq; namespace ShardingCore.TableCreator { -/* -* @Author: xjm -* @Description: -* @Date: Monday, 21 December 2020 11:23:22 -* @Email: 326308290@qq.com -*/ + /* + * @Author: xjm + * @Description: + * @Date: Monday, 21 December 2020 11:23:22 + * @Email: 326308290@qq.com + */ public class ShardingTableCreator : IShardingTableCreator { private readonly ILogger _logger; diff --git a/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyDateTimeVirtualTableRoute.cs b/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyDateTimeVirtualTableRoute.cs index 698bf744..2dd28552 100644 --- a/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyDateTimeVirtualTableRoute.cs +++ b/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyDateTimeVirtualTableRoute.cs @@ -4,6 +4,7 @@ using System.Linq.Expressions; using ShardingCore.Core; using ShardingCore.Core.VirtualRoutes; using ShardingCore.Core.VirtualRoutes.TableRoutes; +using ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions; namespace ShardingCore.VirtualRoutes.Abstractions { diff --git a/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyLongVirtualTableRoute.cs b/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyLongVirtualTableRoute.cs index b3220232..3a66115e 100644 --- a/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyLongVirtualTableRoute.cs +++ b/src/ShardingCore/VirtualRoutes/Abstractions/AbstractShardingTimeKeyLongVirtualTableRoute.cs @@ -4,6 +4,7 @@ using System.Linq.Expressions; using ShardingCore.Core; using ShardingCore.Core.VirtualRoutes; using ShardingCore.Core.VirtualRoutes.TableRoutes; +using ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions; namespace ShardingCore.VirtualRoutes.Abstractions { diff --git a/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyIntVirtualTableRoute.cs b/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyIntVirtualTableRoute.cs index 21026f70..061a56d4 100644 --- a/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyIntVirtualTableRoute.cs +++ b/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyIntVirtualTableRoute.cs @@ -5,6 +5,7 @@ using System.Linq.Expressions; using ShardingCore.Core; using ShardingCore.Core.VirtualRoutes; using ShardingCore.Core.VirtualRoutes.TableRoutes; +using ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions; namespace ShardingCore.VirtualRoutes.Mods { diff --git a/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyStringVirtualTableRoute.cs b/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyStringVirtualTableRoute.cs index f99a04e3..f9f2766a 100644 --- a/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyStringVirtualTableRoute.cs +++ b/src/ShardingCore/VirtualRoutes/Mods/AbstractSimpleShardingModKeyStringVirtualTableRoute.cs @@ -5,6 +5,7 @@ using System.Linq.Expressions; using ShardingCore.Core; using ShardingCore.Core.VirtualRoutes; using ShardingCore.Core.VirtualRoutes.TableRoutes; +using ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions; using ShardingCore.Helpers; namespace ShardingCore.VirtualRoutes.Mods diff --git a/test/ShardingCore.Test50.MySql/DefaultDbContext.cs b/test/ShardingCore.Test50.MySql/DefaultDbContext.cs index 3482fa94..092a58ca 100644 --- a/test/ShardingCore.Test50.MySql/DefaultDbContext.cs +++ b/test/ShardingCore.Test50.MySql/DefaultDbContext.cs @@ -1,6 +1,5 @@ using Microsoft.EntityFrameworkCore; using ShardingCore.Core.VirtualRoutes.Abstractions; -using ShardingCore.DbContexts.ShardingDbContexts; using ShardingCore.Sharding.Abstractions; using ShardingCore.Test50.MySql.Domain.Maps; diff --git a/test/ShardingCore.Test50/DefaultDbContext.cs b/test/ShardingCore.Test50/DefaultDbContext.cs index 3e48a8a4..5e5f4c8e 100644 --- a/test/ShardingCore.Test50/DefaultDbContext.cs +++ b/test/ShardingCore.Test50/DefaultDbContext.cs @@ -1,5 +1,5 @@ using Microsoft.EntityFrameworkCore; -using ShardingCore.Core.VirtualRoutes.Abstractions; +using ShardingCore.Core.VirtualRoutes.RouteTails.Abstractions; using ShardingCore.DbContexts.ShardingDbContexts; using ShardingCore.Sharding.Abstractions; using ShardingCore.Test50.Domain.Maps; diff --git a/test/ShardingCore.Test50/ShardingTest.cs b/test/ShardingCore.Test50/ShardingTest.cs index c8249415..3d513054 100644 --- a/test/ShardingCore.Test50/ShardingTest.cs +++ b/test/ShardingCore.Test50/ShardingTest.cs @@ -247,6 +247,7 @@ namespace ShardingCore.Test50 var sysUserModDesc = await _virtualDbContext.Set().OrderByDescending(o => o.Id).FirstOrDefaultAsync(); Assert.True(sysUserModDesc != null && sysUserModDesc.Id == "999"); + } [Fact] @@ -255,6 +256,10 @@ namespace ShardingCore.Test50 var sysUserMod = await _virtualDbContext.Set().Where(o => o.Id == "1").FirstOrDefaultAsync(); Assert.NotNull(sysUserMod); Assert.True(sysUserMod.Id == "1"); + var user198 = await _virtualDbContext.Set().FirstOrDefaultAsync(o => o.Id == "198"); + Assert.True(user198.Id == "198"); + var userId198 = await _virtualDbContext.Set().Where(o => o.Id == "198").Select(o => o.Id).FirstOrDefaultAsync(); + Assert.Equal(userId198, "198"); } [Fact] diff --git a/test/ShardingCore.Test50/Shardings/SysUserSalaryVirtualTableRoute.cs b/test/ShardingCore.Test50/Shardings/SysUserSalaryVirtualTableRoute.cs index b25f0739..75dbbb11 100644 --- a/test/ShardingCore.Test50/Shardings/SysUserSalaryVirtualTableRoute.cs +++ b/test/ShardingCore.Test50/Shardings/SysUserSalaryVirtualTableRoute.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq.Expressions; using ShardingCore.Core.VirtualRoutes; using ShardingCore.Core.VirtualRoutes.TableRoutes; +using ShardingCore.Core.VirtualRoutes.TableRoutes.Abstractions; using ShardingCore.Test50.Domain.Entities; namespace ShardingCore.Test50.Shardings diff --git a/test/ShardingCore.Test50_2x/ShardingTest.cs b/test/ShardingCore.Test50_2x/ShardingTest.cs index df9a43c6..01bbbce7 100644 --- a/test/ShardingCore.Test50_2x/ShardingTest.cs +++ b/test/ShardingCore.Test50_2x/ShardingTest.cs @@ -249,6 +249,10 @@ namespace ShardingCore.Test50_2x var sysUserMod = await _virtualDbContext.Set().Where(o => o.Id == "1").FirstOrDefaultAsync(); Assert.NotNull(sysUserMod); Assert.True(sysUserMod.Id == "1"); + var user198 = await _virtualDbContext.Set().FirstOrDefaultAsync(o => o.Id == "198"); + Assert.True(user198.Id == "198"); + var userId198 = await _virtualDbContext.Set().Where(o => o.Id == "198").Select(o => o.Id).FirstOrDefaultAsync(); + Assert.Equal(userId198, "198"); } [Fact] diff --git a/test/ShardingCore.Test50_3x/ShardingTest.cs b/test/ShardingCore.Test50_3x/ShardingTest.cs index 32271ae5..875deb35 100644 --- a/test/ShardingCore.Test50_3x/ShardingTest.cs +++ b/test/ShardingCore.Test50_3x/ShardingTest.cs @@ -249,6 +249,10 @@ namespace ShardingCore.Test50_3x var sysUserMod = await _virtualDbContext.Set().Where(o => o.Id == "1").FirstOrDefaultAsync(); Assert.NotNull(sysUserMod); Assert.True(sysUserMod.Id == "1"); + var user198 = await _virtualDbContext.Set().FirstOrDefaultAsync(o => o.Id == "198"); + Assert.True(user198.Id == "198"); + var userId198 = await _virtualDbContext.Set().Where(o => o.Id == "198").Select(o => o.Id).FirstOrDefaultAsync(); + Assert.Equal(userId198, "198"); } [Fact]