This commit is contained in:
parent
16eb64fec0
commit
13faa67bb8
16
README.md
16
README.md
|
@ -195,7 +195,7 @@ Oracle | 支持 | 未测试
|
||||||
{
|
{
|
||||||
op.EnsureCreatedWithOutShardingTable = true;
|
op.EnsureCreatedWithOutShardingTable = true;
|
||||||
op.CreateShardingTableOnStart = true;
|
op.CreateShardingTableOnStart = true;
|
||||||
op.UseShardingDbContextOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
op.UseShardingOptionsBuilder((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
||||||
op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -206,9 +206,10 @@ Oracle | 支持 | 未测试
|
||||||
// {
|
// {
|
||||||
// op.EnsureCreatedWithOutShardingTable = true;
|
// op.EnsureCreatedWithOutShardingTable = true;
|
||||||
// op.CreateShardingTableOnStart = true;
|
// op.CreateShardingTableOnStart = true;
|
||||||
// op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
// //不支持mars额外加一条字符串的
|
||||||
// //不支持mars额外加一条字符串的
|
// op.UseShardingOptionsBuilder(
|
||||||
// op.UseShardingConnStrOptions((connstr, builder) => builder.UseSqlServer(connstr).UseLoggerFactory(efLogger));
|
// (connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger),
|
||||||
|
// (connString, builder) => builder.UseSqlServer(connString).UseLoggerFactory(efLogger));
|
||||||
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||||
// });
|
// });
|
||||||
}
|
}
|
||||||
|
@ -348,9 +349,10 @@ AbstractSimpleShardingYearKeyLongVirtualTableRoute |按时间戳 |yyyy | `>,>=,<
|
||||||
// {
|
// {
|
||||||
// op.EnsureCreatedWithOutShardingTable = true;
|
// op.EnsureCreatedWithOutShardingTable = true;
|
||||||
// op.CreateShardingTableOnStart = true;
|
// op.CreateShardingTableOnStart = true;
|
||||||
// op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
// //不支持mars额外加一条字符串的
|
||||||
// //不支持mars额外加一条字符串的
|
// op.UseShardingOptionsBuilder(
|
||||||
// op.UseShardingConnStrOptions((connstr, builder) => builder.UseSqlServer(connstr).UseLoggerFactory(efLogger));
|
// (connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger),
|
||||||
|
// (connString, builder) => builder.UseSqlServer(connString).UseLoggerFactory(efLogger));
|
||||||
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||||
// });
|
// });
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
:start
|
:start
|
||||||
::定义版本
|
::定义版本
|
||||||
set EFCORE2=2.2.0.04
|
set EFCORE2=2.2.0.05-pre
|
||||||
set EFCORE3=3.2.0.04
|
set EFCORE3=3.2.0.05-pre
|
||||||
set EFCORE5=5.2.0.04
|
set EFCORE5=5.2.0.05-pre
|
||||||
|
|
||||||
::删除所有bin与obj下的文件
|
::删除所有bin与obj下的文件
|
||||||
@echo off
|
@echo off
|
||||||
|
|
|
@ -26,24 +26,26 @@ namespace Sample.SqlServer
|
||||||
|
|
||||||
services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(
|
services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(
|
||||||
o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDBxx2;Integrated Security=True;MultipleActiveResultSets=True;")
|
o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDBxx2;Integrated Security=True;MultipleActiveResultSets=True;")
|
||||||
,op =>
|
, op =>
|
||||||
{
|
{
|
||||||
op.EnsureCreatedWithOutShardingTable = true;
|
op.EnsureCreatedWithOutShardingTable = true;
|
||||||
op.CreateShardingTableOnStart = true;
|
op.CreateShardingTableOnStart = true;
|
||||||
op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
op.UseShardingOptionsBuilder((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
||||||
op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||||
});
|
});
|
||||||
// //不支持MARS不支持追踪的
|
////不支持MARS不支持追踪的
|
||||||
// services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDBxx2;Integrated Security=True;")
|
//services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDBxx2;Integrated Security=True;")
|
||||||
// ,op =>
|
// , op =>
|
||||||
// {
|
// {
|
||||||
// op.EnsureCreatedWithOutShardingTable = true;
|
// op.EnsureCreatedWithOutShardingTable = true;
|
||||||
// op.CreateShardingTableOnStart = true;
|
// op.CreateShardingTableOnStart = true;
|
||||||
// op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
// //不支持mars额外加一条字符串的
|
||||||
// //不支持mars额外加一条字符串的
|
// op.UseShardingOptionsBuilder(
|
||||||
// op.UseShardingConnStrOptions((connstr, builder) => builder.UseSqlServer(connstr).UseLoggerFactory(efLogger));
|
// (connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger),
|
||||||
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
// (connString, builder) => builder.UseSqlServer(connString).UseLoggerFactory(efLogger));
|
||||||
// });
|
|
||||||
|
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace ShardingCore
|
||||||
|
|
||||||
|
|
||||||
//添加创建TActualDbContext 的 创建者
|
//添加创建TActualDbContext 的 创建者
|
||||||
var config = new ShardingDbContextOptionsBuilderConfig<TShardingDbContext>(shardingConfigOptions.ShardingDbContextConnectionOptionsCreator,shardingConfigOptions.ShardingDbContextStringOptionsCreator);
|
var config = new ShardingDbContextOptionsBuilderConfig<TShardingDbContext>(shardingConfigOptions.SameConnectionConfigure,shardingConfigOptions.NotSupportMARSConfigure);
|
||||||
services.AddSingleton<IShardingDbContextOptionsBuilderConfig, ShardingDbContextOptionsBuilderConfig<TShardingDbContext>>(sp=> config);
|
services.AddSingleton<IShardingDbContextOptionsBuilderConfig, ShardingDbContextOptionsBuilderConfig<TShardingDbContext>>(sp=> config);
|
||||||
|
|
||||||
//添加创建TActualDbContext创建者
|
//添加创建TActualDbContext创建者
|
||||||
|
|
|
@ -100,7 +100,7 @@ namespace ShardingCore.Sharding
|
||||||
|
|
||||||
public DbContext GetDbContext(bool track, string tail)
|
public DbContext GetDbContext(bool track, string tail)
|
||||||
{
|
{
|
||||||
if (SupportMARS() || !track)
|
if (SupportMARS() || track)
|
||||||
{
|
{
|
||||||
if (!_dbContextCaches.TryGetValue(tail, out var dbContext))
|
if (!_dbContextCaches.TryGetValue(tail, out var dbContext))
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,17 +25,18 @@ namespace ShardingCore
|
||||||
{
|
{
|
||||||
private readonly Dictionary<Type, Type> _virtualRoutes = new Dictionary<Type, Type>();
|
private readonly Dictionary<Type, Type> _virtualRoutes = new Dictionary<Type, Type>();
|
||||||
|
|
||||||
public Action<DbConnection, DbContextOptionsBuilder> ShardingDbContextConnectionOptionsCreator { get; set; }
|
public Action<DbConnection, DbContextOptionsBuilder> SameConnectionConfigure { get; set; }
|
||||||
|
public Action<string, DbContextOptionsBuilder> NotSupportMARSConfigure { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 配置如何创建对应的dbcontext来操作数据如果数据库支持mars则仅需配置sameConnectionConfigure无需配置notSupportMARSConfigure如果配置了notSupportMARSConfigure则表示数据库不支持MARS则查询将无法正常追踪需要手动attach
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sameConnectionConfigure">dbconnection下如何配置</param>
|
||||||
|
/// <param name="notSupportMARSConfigure">链接字符串下如何配置</param>
|
||||||
|
|
||||||
public void UseShardingConnOptions(Action<DbConnection, DbContextOptionsBuilder> shardingDbContextOptionsCreator)
|
public void UseShardingOptionsBuilder(Action<DbConnection, DbContextOptionsBuilder> sameConnectionConfigure, Action<string, DbContextOptionsBuilder> notSupportMARSConfigure = null)
|
||||||
{
|
{
|
||||||
ShardingDbContextConnectionOptionsCreator = shardingDbContextOptionsCreator ?? throw new ArgumentNullException(nameof(shardingDbContextOptionsCreator));
|
SameConnectionConfigure = sameConnectionConfigure??throw new ArgumentNullException(nameof(sameConnectionConfigure));
|
||||||
}
|
NotSupportMARSConfigure = notSupportMARSConfigure;
|
||||||
public Action<string, DbContextOptionsBuilder> ShardingDbContextStringOptionsCreator { get; set; }
|
|
||||||
|
|
||||||
public void UseShardingConnStrOptions(Action<string, DbContextOptionsBuilder> shardingDbContextOptionsCreator)
|
|
||||||
{
|
|
||||||
ShardingDbContextStringOptionsCreator = shardingDbContextOptionsCreator ?? throw new ArgumentNullException(nameof(shardingDbContextOptionsCreator));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue