修复读写分离bug,发布x.3.1.39

This commit is contained in:
xuejiaming 2021-11-13 11:13:47 +08:00
parent 4e11529c33
commit 78cac03485
5 changed files with 20 additions and 10 deletions

View File

@ -1,9 +1,9 @@
:start
::定义版本
set EFCORE2=2.3.1.38
set EFCORE3=3.3.1.38
set EFCORE5=5.3.1.38
set EFCORE6=6.3.1.38
set EFCORE2=2.3.1.39
set EFCORE3=3.3.1.39
set EFCORE5=5.3.1.39
set EFCORE6=6.3.1.39
::删除所有bin与obj下的文件
@echo off

View File

@ -8,8 +8,11 @@ using Sample.SqlServer.DbContexts;
using Sample.SqlServer.Shardings;
using ShardingCore;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using Sample.SqlServer.Domain.Entities;
using ShardingCore.Extensions;
using ShardingCore.Sharding.ReadWriteConfigurations;
using ShardingCore.Sharding.ShardingComparision;
namespace Sample.SqlServer
@ -36,7 +39,7 @@ namespace Sample.SqlServer
o.EnsureCreatedWithOutShardingTable = true;
o.AutoTrackEntity = true;
o.ParallelQueryMaxThreadCount = 100;
o.ParallelQueryTimeOut=TimeSpan.FromSeconds(10);
o.ParallelQueryTimeOut = TimeSpan.FromSeconds(10);
//if SysTest entity not exists in db and db is exists
//o.AddEntityTryCreateTable<SysTest>(); // or `o.AddEntitiesTryCreateTable(typeof(SysTest));`
})
@ -50,7 +53,14 @@ namespace Sample.SqlServer
o.AddShardingTableRoute<SysUserModVirtualTableRoute>();
o.AddShardingTableRoute<SysUserSalaryVirtualTableRoute>();
o.AddShardingTableRoute<TestYearShardingVirtualTableRoute>();
}).End();
}).AddReadWriteSeparation(sp =>
{
return new Dictionary<string, ISet<string>>()
{
{"ds0",new HashSet<string>(){"Data Source=localhost;Initial Catalog=ShardingCoreDB1;Integrated Security=True;"}}
};
},ReadStrategyEnum.Loop,true).End();
//services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(
// o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDB;Integrated Security=True;")

View File

@ -77,7 +77,7 @@ namespace ShardingCore.DIExtensions
if (_shardingCoreConfigBuilder.ShardingConfigOption.ReadStrategyEnum == ReadStrategyEnum.Loop)
{
services
.AddSingleton<IShardingConnectionStringResolver,
.AddSingleton<IShardingConnectionStringResolver<TShardingDbContext>,
LoopShardingConnectionStringResolver<TShardingDbContext>>(sp =>
{
@ -91,7 +91,7 @@ namespace ShardingCore.DIExtensions
else if (_shardingCoreConfigBuilder.ShardingConfigOption.ReadStrategyEnum == ReadStrategyEnum.Random)
{
services
.AddSingleton<IShardingConnectionStringResolver,
.AddSingleton<IShardingConnectionStringResolver<TShardingDbContext>,
RandomShardingConnectionStringResolver<TShardingDbContext>>(sp =>
{
var readConnString = _shardingCoreConfigBuilder.ShardingConfigOption.ReadConnStringConfigure(sp);

View File

@ -32,7 +32,7 @@ namespace ShardingCore.DIExtensions
int defaultPriority = 10,
ReadConnStringGetStrategyEnum readConnStringGetStrategy = ReadConnStringGetStrategyEnum.LatestFirstTime)
{
_shardingCoreConfigBuilder.ShardingConfigOption.UseReadWriteConfiguration(readWriteSeparationConfigure,readStrategyEnum, defaultEnable,defaultPriority);
_shardingCoreConfigBuilder.ShardingConfigOption.UseReadWriteConfiguration(readWriteSeparationConfigure,readStrategyEnum, defaultEnable,defaultPriority, readConnStringGetStrategy);
return new ShardingCoreConfigEndBuilder<TShardingDbContext>(_shardingCoreConfigBuilder);
}
public ShardingReadWriteSeparationBuilder<TShardingDbContext> ReplaceShardingComparer(Func<IServiceProvider, IShardingComparer<TShardingDbContext>> newShardingComparerFactory)

View File

@ -18,7 +18,7 @@ namespace ShardingCore.Sharding.ReadWriteConfigurations
*/
public class ReadWriteConnectionStringManager<TShardingDbContext> : IConnectionStringManager<TShardingDbContext> where TShardingDbContext : DbContext, IShardingDbContext
{
private IShardingConnectionStringResolver _shardingConnectionStringResolver;
private IShardingConnectionStringResolver<TShardingDbContext> _shardingConnectionStringResolver;
public ReadWriteConnectionStringManager(IShardingConnectionStringResolver<TShardingDbContext> shardingConnectionStringResolver)