This commit is contained in:
parent
16eb64fec0
commit
13faa67bb8
16
README.md
16
README.md
|
@ -195,7 +195,7 @@ Oracle | 支持 | 未测试
|
|||
{
|
||||
op.EnsureCreatedWithOutShardingTable = 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>();
|
||||
});
|
||||
|
||||
|
@ -206,9 +206,10 @@ Oracle | 支持 | 未测试
|
|||
// {
|
||||
// op.EnsureCreatedWithOutShardingTable = true;
|
||||
// op.CreateShardingTableOnStart = true;
|
||||
// op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
||||
// //不支持mars额外加一条字符串的
|
||||
// op.UseShardingConnStrOptions((connstr, builder) => builder.UseSqlServer(connstr).UseLoggerFactory(efLogger));
|
||||
// //不支持mars额外加一条字符串的
|
||||
// op.UseShardingOptionsBuilder(
|
||||
// (connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger),
|
||||
// (connString, builder) => builder.UseSqlServer(connString).UseLoggerFactory(efLogger));
|
||||
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||
// });
|
||||
}
|
||||
|
@ -348,9 +349,10 @@ AbstractSimpleShardingYearKeyLongVirtualTableRoute |按时间戳 |yyyy | `>,>=,<
|
|||
// {
|
||||
// op.EnsureCreatedWithOutShardingTable = true;
|
||||
// op.CreateShardingTableOnStart = true;
|
||||
// op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
||||
// //不支持mars额外加一条字符串的
|
||||
// op.UseShardingConnStrOptions((connstr, builder) => builder.UseSqlServer(connstr).UseLoggerFactory(efLogger));
|
||||
// //不支持mars额外加一条字符串的
|
||||
// op.UseShardingOptionsBuilder(
|
||||
// (connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger),
|
||||
// (connString, builder) => builder.UseSqlServer(connString).UseLoggerFactory(efLogger));
|
||||
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||
// });
|
||||
```
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
:start
|
||||
::定义版本
|
||||
set EFCORE2=2.2.0.04
|
||||
set EFCORE3=3.2.0.04
|
||||
set EFCORE5=5.2.0.04
|
||||
set EFCORE2=2.2.0.05-pre
|
||||
set EFCORE3=3.2.0.05-pre
|
||||
set EFCORE5=5.2.0.05-pre
|
||||
|
||||
::删除所有bin与obj下的文件
|
||||
@echo off
|
||||
|
|
|
@ -26,24 +26,26 @@ namespace Sample.SqlServer
|
|||
|
||||
services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(
|
||||
o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDBxx2;Integrated Security=True;MultipleActiveResultSets=True;")
|
||||
,op =>
|
||||
{
|
||||
op.EnsureCreatedWithOutShardingTable = true;
|
||||
op.CreateShardingTableOnStart = true;
|
||||
op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
||||
op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||
});
|
||||
// //不支持MARS不支持追踪的
|
||||
// services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDBxx2;Integrated Security=True;")
|
||||
// ,op =>
|
||||
// {
|
||||
// op.EnsureCreatedWithOutShardingTable = true;
|
||||
// op.CreateShardingTableOnStart = true;
|
||||
// op.UseShardingConnOptions((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
||||
// //不支持mars额外加一条字符串的
|
||||
// op.UseShardingConnStrOptions((connstr, builder) => builder.UseSqlServer(connstr).UseLoggerFactory(efLogger));
|
||||
// op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||
// });
|
||||
, op =>
|
||||
{
|
||||
op.EnsureCreatedWithOutShardingTable = true;
|
||||
op.CreateShardingTableOnStart = true;
|
||||
op.UseShardingOptionsBuilder((connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger));
|
||||
op.AddShardingTableRoute<SysUserModVirtualTableRoute>();
|
||||
});
|
||||
////不支持MARS不支持追踪的
|
||||
//services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(o => o.UseSqlServer("Data Source=localhost;Initial Catalog=ShardingCoreDBxx2;Integrated Security=True;")
|
||||
// , op =>
|
||||
// {
|
||||
// op.EnsureCreatedWithOutShardingTable = true;
|
||||
// op.CreateShardingTableOnStart = true;
|
||||
// //不支持mars额外加一条字符串的
|
||||
// op.UseShardingOptionsBuilder(
|
||||
// (connection, builder) => builder.UseSqlServer(connection).UseLoggerFactory(efLogger),
|
||||
// (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.
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace ShardingCore
|
|||
|
||||
|
||||
//添加创建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);
|
||||
|
||||
//添加创建TActualDbContext创建者
|
||||
|
|
|
@ -100,7 +100,7 @@ namespace ShardingCore.Sharding
|
|||
|
||||
public DbContext GetDbContext(bool track, string tail)
|
||||
{
|
||||
if (SupportMARS() || !track)
|
||||
if (SupportMARS() || track)
|
||||
{
|
||||
if (!_dbContextCaches.TryGetValue(tail, out var dbContext))
|
||||
{
|
||||
|
|
|
@ -25,17 +25,18 @@ namespace ShardingCore
|
|||
{
|
||||
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));
|
||||
}
|
||||
public Action<string, DbContextOptionsBuilder> ShardingDbContextStringOptionsCreator { get; set; }
|
||||
|
||||
public void UseShardingConnStrOptions(Action<string, DbContextOptionsBuilder> shardingDbContextOptionsCreator)
|
||||
{
|
||||
ShardingDbContextStringOptionsCreator = shardingDbContextOptionsCreator ?? throw new ArgumentNullException(nameof(shardingDbContextOptionsCreator));
|
||||
SameConnectionConfigure = sameConnectionConfigure??throw new ArgumentNullException(nameof(sameConnectionConfigure));
|
||||
NotSupportMARSConfigure = notSupportMARSConfigure;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue