Merge branch 'main' of github.com:dotnetcore/sharding-core
This commit is contained in:
commit
94b99ffce9
|
@ -13,6 +13,7 @@ namespace Sample.MySql
|
||||||
{
|
{
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
|
var list = Enumerable.Range(1,3).Select(o=>(o%100).ToString().PadLeft(2,'0')).ToList();
|
||||||
CreateHostBuilder(args).Build().Run();
|
CreateHostBuilder(args).Build().Run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ namespace Sample.MySql
|
||||||
// });
|
// });
|
||||||
services.AddMultiShardingDbContext<OtherDbContext>()
|
services.AddMultiShardingDbContext<OtherDbContext>()
|
||||||
.UseRouteConfig(op => { op.AddShardingTableRoute<MyUserRoute>(); })
|
.UseRouteConfig(op => { op.AddShardingTableRoute<MyUserRoute>(); })
|
||||||
.UseConfig(o =>
|
.UseConfig((sp,o) =>
|
||||||
{
|
{
|
||||||
o.ThrowIfQueryRouteNotMatch = false;
|
o.ThrowIfQueryRouteNotMatch = false;
|
||||||
o.UseShardingQuery((conStr, builder) =>
|
o.UseShardingQuery((conStr, builder) =>
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace Sample.SqlServer.Domain.Maps
|
||||||
public void Configure(EntityTypeBuilder<SysTest> builder)
|
public void Configure(EntityTypeBuilder<SysTest> builder)
|
||||||
{
|
{
|
||||||
builder.HasKey(o => o.Id);
|
builder.HasKey(o => o.Id);
|
||||||
builder.Property(o => o.Id).IsRequired().HasMaxLength(128);
|
builder.Property(o => o.Id).ValueGeneratedOnAdd().IsRequired().HasMaxLength(128);
|
||||||
builder.Property(o => o.UserId).IsRequired().HasMaxLength(128);
|
builder.Property(o => o.UserId).IsRequired().HasMaxLength(128);
|
||||||
builder.ToTable(nameof(SysTest));
|
builder.ToTable(nameof(SysTest));
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,15 @@ namespace Sample.SqlServerShardingDataSource.VirtualRoutes
|
||||||
{
|
{
|
||||||
public class SysUserVirtualDataSourceRoute : AbstractShardingOperatorVirtualDataSourceRoute<SysUser, string>
|
public class SysUserVirtualDataSourceRoute : AbstractShardingOperatorVirtualDataSourceRoute<SysUser, string>
|
||||||
{
|
{
|
||||||
|
// private readonly List<string> _dataSources = new List<string>()
|
||||||
|
// {
|
||||||
|
// "00", "01", "02","03"
|
||||||
|
// };
|
||||||
|
// //我们设置区域就是数据库
|
||||||
|
// public override string ShardingKeyToDataSourceName(object shardingKey)
|
||||||
|
// {
|
||||||
|
// return Math.Abs(ShardingCoreHelper.GetStringHashCode(shardingKey?.ToString() ?? string.Empty)%4).ToString().PadLeft(2,'0');
|
||||||
|
// }
|
||||||
private readonly List<string> _dataSources = new List<string>()
|
private readonly List<string> _dataSources = new List<string>()
|
||||||
{
|
{
|
||||||
"00", "01", "02","03"
|
"00", "01", "02","03"
|
||||||
|
|
|
@ -107,6 +107,10 @@ namespace ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
routeMaps.Add(dataSourceName,new Dictionary<Type, ISet<TableRouteUnit>>());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ShardingRouteResult(sqlRouteUnits, sqlRouteUnits.Count == 0, dataSourceCount > 1, isCrossTable,
|
return new ShardingRouteResult(sqlRouteUnits, sqlRouteUnits.Count == 0, dataSourceCount > 1, isCrossTable,
|
||||||
|
|
Loading…
Reference in New Issue