添加注释和部分异常说明
This commit is contained in:
parent
64dc7d90e9
commit
a2008bce88
|
@ -1,4 +1,5 @@
|
||||||
using System.Diagnostics;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
@ -56,12 +57,12 @@ namespace Sample.MySql.Controllers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class RateLimitAttribute : Attribute
|
public class RateLimitAttribute : Attribute
|
||||||
{
|
{
|
||||||
|
|
||||||
public RateLimitAttribute(int limitCount = 1)
|
public RateLimitAttribute(int limitCount = 1)
|
||||||
{
|
{
|
||||||
Console.WriteLine("------------RateLimitAttribute----------");
|
Console.WriteLine("------------RateLimitAttribute----------");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]/[action]")]
|
[Route("[controller]/[action]")]
|
||||||
public class WeatherForecastController : ControllerBase
|
public class WeatherForecastController : ControllerBase
|
||||||
|
@ -73,35 +74,57 @@ namespace Sample.MySql.Controllers
|
||||||
private readonly IShardingRuntimeContext _shardingRuntimeContext;
|
private readonly IShardingRuntimeContext _shardingRuntimeContext;
|
||||||
private readonly ABC _abc;
|
private readonly ABC _abc;
|
||||||
|
|
||||||
public WeatherForecastController(IShardingRuntimeContext<DefaultShardingDbContext> defaultShardingRuntimeContext,IServiceProvider serviceProvider,UnShardingDbContext unShardingDbContext,DefaultShardingDbContext defaultTableDbContext,IShardingRuntimeContext shardingRuntimeContext)
|
public WeatherForecastController(
|
||||||
|
IShardingRuntimeContext<DefaultShardingDbContext> defaultShardingRuntimeContext,
|
||||||
|
IServiceProvider serviceProvider, UnShardingDbContext unShardingDbContext,
|
||||||
|
DefaultShardingDbContext defaultTableDbContext, IShardingRuntimeContext shardingRuntimeContext)
|
||||||
{
|
{
|
||||||
_defaultShardingRuntimeContext = defaultShardingRuntimeContext;
|
_defaultShardingRuntimeContext = defaultShardingRuntimeContext;
|
||||||
_serviceProvider = serviceProvider;
|
_serviceProvider = serviceProvider;
|
||||||
_unShardingDbContext = unShardingDbContext;
|
_unShardingDbContext = unShardingDbContext;
|
||||||
_defaultTableDbContext = defaultTableDbContext;
|
_defaultTableDbContext = defaultTableDbContext;
|
||||||
_shardingRuntimeContext = shardingRuntimeContext;
|
_shardingRuntimeContext = shardingRuntimeContext;
|
||||||
_abc=new ABC(_defaultTableDbContext);
|
_abc = new ABC(_defaultTableDbContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public (string id,string name___11) aaa()
|
||||||
|
{
|
||||||
|
var sql= from u in _defaultTableDbContext.Set<SysTest>()
|
||||||
|
where u.Id == "123"
|
||||||
|
select (id:u.Id,name___11:u.UserId);
|
||||||
|
return sql.FirstOrDefault();
|
||||||
|
}
|
||||||
public IQueryable<SysTest> GetAll()
|
public IQueryable<SysTest> GetAll()
|
||||||
{
|
{
|
||||||
|
var valueTuple = aaa();
|
||||||
|
// valueTuple.
|
||||||
|
|
||||||
|
|
||||||
|
var sql = from u in _defaultTableDbContext.Set<SysTest>()
|
||||||
|
where u.Id == "123"
|
||||||
|
select new
|
||||||
|
{
|
||||||
|
Id=u.Id,
|
||||||
|
Name_____1111=u.UserId
|
||||||
|
};
|
||||||
|
var sysTests = sql.Where(o=>o.Name_____1111=="456").ToList();
|
||||||
|
|
||||||
|
|
||||||
var dbContextOptionsBuilder = new DbContextOptionsBuilder<DefaultShardingDbContext>();
|
var dbContextOptionsBuilder = new DbContextOptionsBuilder<DefaultShardingDbContext>();
|
||||||
var dbContextOptionBuilderCreator = _shardingRuntimeContext.GetDbContextOptionBuilderCreator();
|
var dbContextOptionBuilderCreator = _shardingRuntimeContext.GetDbContextOptionBuilderCreator();
|
||||||
dbContextOptionsBuilder.UseDefaultSharding<DefaultShardingDbContext>(_shardingRuntimeContext);
|
dbContextOptionsBuilder.UseDefaultSharding<DefaultShardingDbContext>(_shardingRuntimeContext);
|
||||||
using (var dbContext = new DefaultShardingDbContext(dbContextOptionsBuilder.Options))
|
using (var dbContext = new DefaultShardingDbContext(dbContextOptionsBuilder.Options))
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var dataSourceDbContext in _defaultTableDbContext.GetShardingExecutor().GetCurrentDbContexts())
|
foreach (var dataSourceDbContext in _defaultTableDbContext.GetShardingExecutor().GetCurrentDbContexts())
|
||||||
{
|
{
|
||||||
foreach (var keyValuePair in dataSourceDbContext.Value.GetCurrentContexts())
|
foreach (var keyValuePair in dataSourceDbContext.Value.GetCurrentContexts())
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
((IResettableService)_defaultTableDbContext).ResetState();
|
((IResettableService)_defaultTableDbContext).ResetState();
|
||||||
|
|
||||||
var dataSourceRouteManager = _shardingRuntimeContext.GetDataSourceRouteManager();
|
var dataSourceRouteManager = _shardingRuntimeContext.GetDataSourceRouteManager();
|
||||||
|
@ -112,7 +135,7 @@ namespace Sample.MySql.Controllers
|
||||||
// DynamicShardingHelper.DynamicAppendDataSource(_shardingRuntimeContext,"ds9","链接字符串",true,true);
|
// DynamicShardingHelper.DynamicAppendDataSource(_shardingRuntimeContext,"ds9","链接字符串",true,true);
|
||||||
//如果你已经添加好了的情况下并且没有生成对应的库和表想要生成表和库
|
//如果你已经添加好了的情况下并且没有生成对应的库和表想要生成表和库
|
||||||
var dataSourceInitializer = _shardingRuntimeContext.GetDataSourceInitializer();
|
var dataSourceInitializer = _shardingRuntimeContext.GetDataSourceInitializer();
|
||||||
dataSourceInitializer.InitConfigure("ds9",true,true);
|
dataSourceInitializer.InitConfigure("ds9", true, true);
|
||||||
|
|
||||||
// _defaultTableDbContext.ReadWriteSeparationReadOnly();//读库
|
// _defaultTableDbContext.ReadWriteSeparationReadOnly();//读库
|
||||||
// _defaultTableDbContext.ReadWriteSeparationWriteOnly();//写库
|
// _defaultTableDbContext.ReadWriteSeparationWriteOnly();//写库
|
||||||
|
@ -124,20 +147,20 @@ namespace Sample.MySql.Controllers
|
||||||
|
|
||||||
//一定要先在路由里面添加尾巴
|
//一定要先在路由里面添加尾巴
|
||||||
virtualTableRoute.Append("20220921");
|
virtualTableRoute.Append("20220921");
|
||||||
shardingTableCreator.CreateTable<SysUserMod>("ds0","20220921");
|
shardingTableCreator.CreateTable<SysUserMod>("ds0", "20220921");
|
||||||
return _defaultTableDbContext.Set<SysTest>();
|
return _defaultTableDbContext.Set<SysTest>();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Getxx()
|
public async Task<IActionResult> Getxx()
|
||||||
{
|
{
|
||||||
|
|
||||||
var test = new Test();
|
var test = new Test();
|
||||||
test.UtcTime=DateTime.Now;
|
test.UtcTime = DateTime.Now;
|
||||||
await _defaultTableDbContext.AddAsync(test);
|
await _defaultTableDbContext.AddAsync(test);
|
||||||
var saveChangesAsync = await _defaultTableDbContext.SaveChangesAsync();
|
var saveChangesAsync = await _defaultTableDbContext.SaveChangesAsync();
|
||||||
return Ok(saveChangesAsync);
|
return Ok(saveChangesAsync);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get()
|
public async Task<IActionResult> Get()
|
||||||
{
|
{
|
||||||
|
@ -155,12 +178,12 @@ namespace Sample.MySql.Controllers
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
|
||||||
var dateTime = new DateTime(2021,1,1);
|
var dateTime = new DateTime(2021, 1, 1);
|
||||||
var x211 = await (from ut in _defaultTableDbContext.Set<SysTest>().UseUnionAllMerge()
|
var x211 = await (from ut in _defaultTableDbContext.Set<SysTest>().UseUnionAllMerge()
|
||||||
join uu in _defaultTableDbContext.Set<SysUserLogByMonth>()
|
join uu in _defaultTableDbContext.Set<SysUserLogByMonth>()
|
||||||
on ut.Id equals uu.Id
|
on ut.Id equals uu.Id
|
||||||
where uu.Time > dateTime
|
where uu.Time > dateTime
|
||||||
select new { a = ut, b = uu }).Select(o=>new {x=o}).Select(o=>new{x=o})
|
select new { a = ut, b = uu }).Select(o => new { x = o }).Select(o => new { x = o })
|
||||||
.Select(o => new
|
.Select(o => new
|
||||||
{
|
{
|
||||||
o.x.x.a.Id
|
o.x.x.a.Id
|
||||||
|
@ -169,13 +192,13 @@ namespace Sample.MySql.Controllers
|
||||||
var x2 = await (from ut in _defaultTableDbContext.Set<SysTest>()
|
var x2 = await (from ut in _defaultTableDbContext.Set<SysTest>()
|
||||||
join uu in _defaultTableDbContext.Set<SysUserLogByMonth>()
|
join uu in _defaultTableDbContext.Set<SysUserLogByMonth>()
|
||||||
on ut.Id equals uu.Id
|
on ut.Id equals uu.Id
|
||||||
select new { a = ut, b = uu }).Select(o=>new {x=o}).Select(o=>new{x=o})
|
select new { a = ut, b = uu }).Select(o => new { x = o }).Select(o => new { x = o })
|
||||||
.Select(o => new
|
.Select(o => new
|
||||||
{
|
{
|
||||||
o.x.x.a.Id
|
o.x.x.a.Id
|
||||||
}).OrderBy(o => o.Id).ToListAsync();
|
}).OrderBy(o => o.Id).ToListAsync();
|
||||||
Console.WriteLine("123");
|
Console.WriteLine("123");
|
||||||
//OtherDbContext.CurrentId = "";
|
//OtherDbContext.CurrentId = "";
|
||||||
// var myUsers0 = _otherDbContext.MyUsers.ToList();
|
// var myUsers0 = _otherDbContext.MyUsers.ToList();
|
||||||
// OtherDbContext.CurrentId = "123";
|
// OtherDbContext.CurrentId = "123";
|
||||||
// var myUsers1 = _otherDbContext.MyUsers.ToList();
|
// var myUsers1 = _otherDbContext.MyUsers.ToList();
|
||||||
|
@ -209,15 +232,15 @@ namespace Sample.MySql.Controllers
|
||||||
Console.WriteLine(sp.ElapsedMilliseconds);
|
Console.WriteLine(sp.ElapsedMilliseconds);
|
||||||
|
|
||||||
var resultX1 = await _defaultTableDbContext.Set<SysUserMod>()
|
var resultX1 = await _defaultTableDbContext.Set<SysUserMod>()
|
||||||
.Where(o => o.Id == "2" || o.Id == "3").GroupBy(o => new { o.Id,o.Name })
|
.Where(o => o.Id == "2" || o.Id == "3").GroupBy(o => new { o.Id, o.Name })
|
||||||
.Select(o => new
|
.Select(o => new
|
||||||
{
|
{
|
||||||
id = o.Key.Id,
|
id = o.Key.Id,
|
||||||
name = o.Key.Name,
|
name = o.Key.Name,
|
||||||
count = o.Count()
|
count = o.Count()
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
var resultX12 = await _defaultTableDbContext.Set<SysUserMod>()
|
var resultX12 = await _defaultTableDbContext.Set<SysUserMod>()
|
||||||
.Where(o => o.Id == "2" || o.Id == "3").GroupBy(o => new { o.Id,o.Name })
|
.Where(o => o.Id == "2" || o.Id == "3").GroupBy(o => new { o.Id, o.Name })
|
||||||
.Select(o => new abc
|
.Select(o => new abc
|
||||||
{
|
{
|
||||||
id = o.Key.Id,
|
id = o.Key.Id,
|
||||||
|
@ -232,132 +255,147 @@ namespace Sample.MySql.Controllers
|
||||||
Console.WriteLine("1");
|
Console.WriteLine("1");
|
||||||
}
|
}
|
||||||
|
|
||||||
var x=await (from ut in _defaultTableDbContext.Set<SysTest>()
|
var x = await (from ut in _defaultTableDbContext.Set<SysTest>()
|
||||||
from uu in _defaultTableDbContext.Set<SysUserMod>()
|
from uu in _defaultTableDbContext.Set<SysUserMod>()
|
||||||
where ut.Id == uu.Id
|
where ut.Id == uu.Id
|
||||||
select ut).FirstOrDefaultAsync();
|
select ut).FirstOrDefaultAsync();
|
||||||
var x1=await (from ut in _defaultTableDbContext.Set<SysUserMod>()
|
var x1 = await (from ut in _defaultTableDbContext.Set<SysUserMod>()
|
||||||
from uu in _defaultTableDbContext.Set<SysTest>()
|
from uu in _defaultTableDbContext.Set<SysTest>()
|
||||||
where ut.Id == uu.Id
|
where ut.Id == uu.Id
|
||||||
select ut).FirstOrDefaultAsync();
|
select ut).FirstOrDefaultAsync();
|
||||||
// var firstOrDefault = _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw($"select * from {nameof(SysUserMod)}").FirstOrDefault();
|
// var firstOrDefault = _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw($"select * from {nameof(SysUserMod)}").FirstOrDefault();
|
||||||
|
|
||||||
var sysUserMods1 = _defaultTableDbContext.Set<SysTest>().UseConnectionMode(1)
|
var sysUserMods1 = _defaultTableDbContext.Set<SysTest>().UseConnectionMode(1)
|
||||||
.Select(o => new ssss(){ Id = o.Id, C = _abc.Select.Count(x => x.Id == o.Id) }).ToList();
|
.Select(o => new ssss() { Id = o.Id, C = _abc.Select.Count(x => x.Id == o.Id) }).ToList();
|
||||||
var sysUserMods2 = _defaultTableDbContext.Set<SysTest>()
|
var sysUserMods2 = _defaultTableDbContext.Set<SysTest>()
|
||||||
.Select(o => new ssss(){ Id = o.Id, C = GetAll().Count(x => x.Id == o.Id) }).ToList();
|
.Select(o => new ssss() { Id = o.Id, C = GetAll().Count(x => x.Id == o.Id) }).ToList();
|
||||||
var sysTests = GetAll();
|
var sysTests = GetAll();
|
||||||
var sysUserMods3 = _defaultTableDbContext.Set<SysTest>()
|
var sysUserMods3 = _defaultTableDbContext.Set<SysTest>()
|
||||||
// .AsRoute(op=>
|
// .AsRoute(op=>
|
||||||
// {
|
// {
|
||||||
// op.TryCreateOrAddMustTail<SysTest>(new[] { "00" });
|
// op.TryCreateOrAddMustTail<SysTest>(new[] { "00" });
|
||||||
// })
|
// })
|
||||||
.Select(o => new ssss(){ Id = o.Id, C = sysTests.Count(x => x.Id == o.Id) }).ToList();
|
.Select(o => new ssss() { Id = o.Id, C = sysTests.Count(x => x.Id == o.Id) }).ToList();
|
||||||
var resultX = await _defaultTableDbContext.Set<SysUserMod>()
|
var resultX = await _defaultTableDbContext.Set<SysUserMod>()
|
||||||
.Where(o => o.Id == "2" || o.Id == "3").FirstOrDefaultAsync();
|
.Where(o => o.Id == "2" || o.Id == "3").FirstOrDefaultAsync();
|
||||||
var resultY = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync(o => o.Id == "2" || o.Id == "3");
|
var resultY = await _defaultTableDbContext.Set<SysUserMod>()
|
||||||
var shardingFirstOrDefaultAsyncxxx = await _defaultTableDbContext.Set<SysUserLogByMonth>().Where(o=>o.Time==DateTime.Now).ToListAsync();
|
.FirstOrDefaultAsync(o => o.Id == "2" || o.Id == "3");
|
||||||
var result = await _defaultTableDbContext.Set<SysTest>().AnyAsync();
|
var shardingFirstOrDefaultAsyncxxx = await _defaultTableDbContext.Set<SysUserLogByMonth>()
|
||||||
var result22 = await _defaultTableDbContext.Set<SysUserMod>().Where(o => o.Id == "2"&&o.Name=="ds1").ToListAsync();
|
.Where(o => o.Time == DateTime.Now).ToListAsync();
|
||||||
var result1 = await _defaultTableDbContext.Set<SysUserMod>().Where(o => o.Id == "2" || o.Id == "3").ToListAsync();
|
var result = await _defaultTableDbContext.Set<SysTest>().AnyAsync();
|
||||||
var result2 = await _defaultTableDbContext.Set<SysUserLogByMonth>().Skip(1).Take(10).ToListAsync();
|
var result22 = await _defaultTableDbContext.Set<SysUserMod>().Where(o => o.Id == "2" && o.Name == "ds1")
|
||||||
var shardingFirstOrDefaultAsync = await _defaultTableDbContext.Set<SysUserLogByMonth>().ToListAsync();
|
.ToListAsync();
|
||||||
var shardingCountAsync = await _defaultTableDbContext.Set<SysUserMod>().CountAsync();
|
var result1 = await _defaultTableDbContext.Set<SysUserMod>().Where(o => o.Id == "2" || o.Id == "3")
|
||||||
var shardingCountAsyn2c = _defaultTableDbContext.Set<SysUserLogByMonth>().Count();
|
.ToListAsync();
|
||||||
|
var result2 = await _defaultTableDbContext.Set<SysUserLogByMonth>().Skip(1).Take(10).ToListAsync();
|
||||||
|
var shardingFirstOrDefaultAsync = await _defaultTableDbContext.Set<SysUserLogByMonth>().ToListAsync();
|
||||||
|
var shardingCountAsync = await _defaultTableDbContext.Set<SysUserMod>().CountAsync();
|
||||||
|
var shardingCountAsyn2c = _defaultTableDbContext.Set<SysUserLogByMonth>().Count();
|
||||||
|
|
||||||
|
|
||||||
// var dbConnection = _defaultTableDbContext.Database.GetDbConnection();
|
// var dbConnection = _defaultTableDbContext.Database.GetDbConnection();
|
||||||
// if (dbConnection.State != ConnectionState.Open)
|
// if (dbConnection.State != ConnectionState.Open)
|
||||||
// {
|
// {
|
||||||
// dbConnection.Open();
|
// dbConnection.Open();
|
||||||
// }
|
// }
|
||||||
// using (var dbCommand = dbConnection.CreateCommand())
|
// using (var dbCommand = dbConnection.CreateCommand())
|
||||||
// {
|
// {
|
||||||
// dbCommand.CommandText = "select * from systest";
|
// dbCommand.CommandText = "select * from systest";
|
||||||
// dbCommand.Transaction = _defaultTableDbContext.Database.CurrentTransaction?.GetDbTransaction();
|
// dbCommand.Transaction = _defaultTableDbContext.Database.CurrentTransaction?.GetDbTransaction();
|
||||||
// var dbDataReader = dbCommand.ExecuteReader();
|
// var dbDataReader = dbCommand.ExecuteReader();
|
||||||
// while (dbDataReader.Read())
|
// while (dbDataReader.Read())
|
||||||
// {
|
// {
|
||||||
// Console.WriteLine(dbDataReader[0]);
|
// Console.WriteLine(dbDataReader[0]);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
return Ok(1);
|
return Ok(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get1()
|
public async Task<IActionResult> Get1()
|
||||||
{
|
{
|
||||||
var resultX = await _defaultTableDbContext.Set<SysUserMod>()
|
var resultX = await _defaultTableDbContext.Set<SysUserMod>()
|
||||||
.Where(o => o.Id == "2" || o.Id == "3").FirstOrDefaultAsync();
|
.Where(o => o.Id == "2" || o.Id == "3").FirstOrDefaultAsync();
|
||||||
Console.WriteLine("-----------------------------------------------------------------------------------------------------");
|
Console.WriteLine(
|
||||||
var resultY = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync(o => o.Id == "2" || o.Id == "3");
|
"-----------------------------------------------------------------------------------------------------");
|
||||||
Console.WriteLine("-----------------------------------------------------------------------------------------------------");
|
var resultY = await _defaultTableDbContext.Set<SysUserMod>()
|
||||||
|
.FirstOrDefaultAsync(o => o.Id == "2" || o.Id == "3");
|
||||||
|
Console.WriteLine(
|
||||||
|
"-----------------------------------------------------------------------------------------------------");
|
||||||
var result = await _defaultTableDbContext.Set<SysTest>().AnyAsync();
|
var result = await _defaultTableDbContext.Set<SysTest>().AnyAsync();
|
||||||
Console.WriteLine("-----------------------------------------------------------------------------------------------------");
|
Console.WriteLine(
|
||||||
|
"-----------------------------------------------------------------------------------------------------");
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get2()
|
public async Task<IActionResult> Get2()
|
||||||
{
|
{
|
||||||
var dateTime = new DateTime(2021,1,1);
|
var dateTime = new DateTime(2021, 1, 1);
|
||||||
var sql= from a in _defaultTableDbContext.Set<SysUserLogByMonth>().Where(o=>o.Time==dateTime)
|
var sql = from a in _defaultTableDbContext.Set<SysUserLogByMonth>().Where(o => o.Time == dateTime)
|
||||||
join b in _defaultTableDbContext.Set<SysTest>()
|
join b in _defaultTableDbContext.Set<SysTest>()
|
||||||
on a.Id equals b.Id into t1
|
on a.Id equals b.Id into t1
|
||||||
from aa1 in t1.DefaultIfEmpty()
|
from aa1 in t1.DefaultIfEmpty()
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
ID = a.Id
|
ID = a.Id
|
||||||
};
|
};
|
||||||
var listAsync =await sql.ToListAsync();
|
var listAsync = await sql.ToListAsync();
|
||||||
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get3()
|
public async Task<IActionResult> Get3()
|
||||||
{
|
{
|
||||||
var sysUserMods = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync();
|
var sysUserMods = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync();
|
||||||
_defaultTableDbContext.SysUserMod.Remove(sysUserMods);
|
_defaultTableDbContext.SysUserMod.Remove(sysUserMods);
|
||||||
_defaultTableDbContext.SaveChanges();
|
_defaultTableDbContext.SaveChanges();
|
||||||
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get4()
|
public async Task<IActionResult> Get4()
|
||||||
{
|
{
|
||||||
var sql=from a in _defaultTableDbContext.Set<TestMod>()
|
var sql = from a in _defaultTableDbContext.Set<TestMod>()
|
||||||
join b in _defaultTableDbContext.Set<TestModItem>()
|
join b in _defaultTableDbContext.Set<TestModItem>()
|
||||||
on a.Id equals b.MainId
|
on a.Id equals b.MainId
|
||||||
select a;
|
select a;
|
||||||
var xx = await sql.ToListAsync();
|
var xx = await sql.ToListAsync();
|
||||||
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get6()
|
public async Task<IActionResult> Get6()
|
||||||
{
|
{
|
||||||
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync();
|
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync();
|
||||||
sysUserMod.Age = new Random().Next(1,999);
|
sysUserMod.Age = new Random().Next(1, 999);
|
||||||
_defaultTableDbContext.Update(sysUserMod);
|
_defaultTableDbContext.Update(sysUserMod);
|
||||||
_defaultTableDbContext.SaveChanges();
|
_defaultTableDbContext.SaveChanges();
|
||||||
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get7()
|
public async Task<IActionResult> Get7()
|
||||||
{
|
{
|
||||||
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().FindAsync("101");
|
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().FindAsync("101");
|
||||||
sysUserMod.Age = new Random().Next(1,999);
|
sysUserMod.Age = new Random().Next(1, 999);
|
||||||
_defaultTableDbContext.Update(sysUserMod);
|
_defaultTableDbContext.Update(sysUserMod);
|
||||||
_defaultTableDbContext.SaveChanges();
|
_defaultTableDbContext.SaveChanges();
|
||||||
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get8()
|
public async Task<IActionResult> Get8()
|
||||||
{
|
{
|
||||||
|
@ -368,15 +406,18 @@ namespace Sample.MySql.Controllers
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get9()
|
public async Task<IActionResult> Get9()
|
||||||
{
|
{
|
||||||
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().Where(o=>o.Name=="11231").AllAsync(o=>o.Id=="1123");
|
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().Where(o => o.Name == "11231")
|
||||||
|
.AllAsync(o => o.Id == "1123");
|
||||||
|
|
||||||
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get10()
|
public async Task<IActionResult> Get10()
|
||||||
{
|
{
|
||||||
|
@ -384,12 +425,14 @@ namespace Sample.MySql.Controllers
|
||||||
var dataSourceDbContexts = shardingDbContextExecutor.GetCurrentDbContexts();
|
var dataSourceDbContexts = shardingDbContextExecutor.GetCurrentDbContexts();
|
||||||
var sourceDbContexts = dataSourceDbContexts.Values;
|
var sourceDbContexts = dataSourceDbContexts.Values;
|
||||||
var dataSourceDbContext = sourceDbContexts.FirstOrDefault();
|
var dataSourceDbContext = sourceDbContexts.FirstOrDefault();
|
||||||
var dbConnection = dataSourceDbContext.GetCurrentContexts().FirstOrDefault().Value.Database.GetDbConnection();
|
var dbConnection = dataSourceDbContext.GetCurrentContexts().FirstOrDefault().Value.Database
|
||||||
|
.GetDbConnection();
|
||||||
|
|
||||||
|
|
||||||
var sysUserMod1 = await _defaultTableDbContext.Set<SysTest>().Where(o=>o.UserId=="11231").AllAsync(o=>o.Id=="1123"&&string.Compare(o.UserId,"123")>0);
|
var sysUserMod1 = await _defaultTableDbContext.Set<SysTest>().Where(o => o.UserId == "11231")
|
||||||
var sysUserMod2 = await _defaultTableDbContext.Set<SysTest>().AllAsync(o=>o.Id=="1123");
|
.AllAsync(o => o.Id == "1123" && string.Compare(o.UserId, "123") > 0);
|
||||||
var dateTime = new DateTime(2020,1,1);
|
var sysUserMod2 = await _defaultTableDbContext.Set<SysTest>().AllAsync(o => o.Id == "1123");
|
||||||
|
var dateTime = new DateTime(2020, 1, 1);
|
||||||
var sysUserMod3 = await _defaultTableDbContext.Set<SysUserLogByMonth>().Where(o => o.Time > dateTime)
|
var sysUserMod3 = await _defaultTableDbContext.Set<SysUserLogByMonth>().Where(o => o.Time > dateTime)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
|
@ -397,10 +440,11 @@ namespace Sample.MySql.Controllers
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get11()
|
public async Task<IActionResult> Get11()
|
||||||
{
|
{
|
||||||
using(var tran = await _defaultTableDbContext.Database.BeginTransactionAsync())
|
using (var tran = await _defaultTableDbContext.Database.BeginTransactionAsync())
|
||||||
{
|
{
|
||||||
var newGuid = Guid.NewGuid().ToString("n");
|
var newGuid = Guid.NewGuid().ToString("n");
|
||||||
await _defaultTableDbContext.Set<SysTest>().Where(o => o.Id == "11")
|
await _defaultTableDbContext.Set<SysTest>().Where(o => o.Id == "11")
|
||||||
|
@ -411,21 +455,23 @@ namespace Sample.MySql.Controllers
|
||||||
|
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get12()
|
public async Task<IActionResult> Get12()
|
||||||
{
|
{
|
||||||
var sysTests = from ut in _defaultTableDbContext.Set<SysTest>()
|
var sysTests = from ut in _defaultTableDbContext.Set<SysTest>()
|
||||||
where _defaultTableDbContext.Set<SysUserLogByMonth>().Any(x => x.Id == ut.Id)
|
where _defaultTableDbContext.Set<SysUserLogByMonth>().Any(x => x.Id == ut.Id)
|
||||||
select ut;
|
select ut;
|
||||||
var tests = sysTests.ToList();
|
var tests = sysTests.ToList();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get13()
|
public async Task<IActionResult> Get13()
|
||||||
{
|
{
|
||||||
var list =await _defaultTableDbContext.Set<SysUserLogByMonth>()
|
var list = await _defaultTableDbContext.Set<SysUserLogByMonth>()
|
||||||
.GroupBy(o=>o.Time)
|
.GroupBy(o => o.Time)
|
||||||
.Select(o=>new
|
.Select(o => new
|
||||||
{
|
{
|
||||||
o.Key
|
o.Key
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
@ -441,7 +487,7 @@ namespace Sample.MySql.Controllers
|
||||||
{
|
{
|
||||||
var sysUserLogByMonth = new SysUserLogByMonth();
|
var sysUserLogByMonth = new SysUserLogByMonth();
|
||||||
sysUserLogByMonth.Id = Guid.NewGuid().ToString("n");
|
sysUserLogByMonth.Id = Guid.NewGuid().ToString("n");
|
||||||
sysUserLogByMonth.Time=DateTime.Now;
|
sysUserLogByMonth.Time = DateTime.Now;
|
||||||
sysUserLogByMonths.Add(sysUserLogByMonth);
|
sysUserLogByMonths.Add(sysUserLogByMonth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,7 +505,7 @@ namespace Sample.MySql.Controllers
|
||||||
{
|
{
|
||||||
var sysUserLogByMonth = new SysUserLogByMonth();
|
var sysUserLogByMonth = new SysUserLogByMonth();
|
||||||
sysUserLogByMonth.Id = Guid.NewGuid().ToString("n");
|
sysUserLogByMonth.Id = Guid.NewGuid().ToString("n");
|
||||||
sysUserLogByMonth.Time=DateTime.Now;
|
sysUserLogByMonth.Time = DateTime.Now;
|
||||||
sysUserLogByMonths.Add(sysUserLogByMonth);
|
sysUserLogByMonths.Add(sysUserLogByMonth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -469,14 +515,13 @@ namespace Sample.MySql.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get16()
|
public async Task<IActionResult> Get16()
|
||||||
{
|
{
|
||||||
_defaultTableDbContext.ReadWriteSeparationWriteOnly();
|
_defaultTableDbContext.ReadWriteSeparationWriteOnly();
|
||||||
|
|
||||||
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync();
|
var sysUserMod = await _defaultTableDbContext.Set<SysUserMod>().FirstOrDefaultAsync();
|
||||||
sysUserMod.Age = new Random().Next(1,999);
|
sysUserMod.Age = new Random().Next(1, 999);
|
||||||
await _defaultTableDbContext.SaveChangesAsync();
|
await _defaultTableDbContext.SaveChangesAsync();
|
||||||
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
// var sysUserMods1 = await _defaultTableDbContext.Set<SysUserMod>().FromSqlRaw("select * from SysUserMod where id='2'").ToListAsync();
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
|
@ -497,13 +542,14 @@ namespace Sample.MySql.Controllers
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok(sysUserMods);
|
return Ok(sysUserMods);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get18()
|
public async Task<IActionResult> Get18()
|
||||||
{
|
{
|
||||||
var sysUserMods = await _defaultTableDbContext.SysUserMod.AsNoTracking().GroupBy(o => o.Age)
|
var sysUserMods = await _defaultTableDbContext.SysUserMod.AsNoTracking().GroupBy(o => o.Age)
|
||||||
.Select(o=>new
|
.Select(o => new
|
||||||
{
|
{
|
||||||
Age=o.Key
|
Age = o.Key
|
||||||
})
|
})
|
||||||
.CountAsync();
|
.CountAsync();
|
||||||
|
|
||||||
|
@ -511,11 +557,13 @@ namespace Sample.MySql.Controllers
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok(sysUserMods);
|
return Ok(sysUserMods);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get20()
|
public async Task<IActionResult> Get20()
|
||||||
{
|
{
|
||||||
var dateTime = new DateTime(2022,1,1);
|
var dateTime = new DateTime(2022, 1, 1);
|
||||||
var queryable = _defaultTableDbContext.Set<SysUserLogByMonth>().Where(o=>o.Time>dateTime).Select(o=>o.Id);
|
var queryable = _defaultTableDbContext.Set<SysUserLogByMonth>().Where(o => o.Time > dateTime)
|
||||||
|
.Select(o => o.Id);
|
||||||
var sysUserMods = await _defaultTableDbContext.SysUserMod.AsNoTracking()
|
var sysUserMods = await _defaultTableDbContext.SysUserMod.AsNoTracking()
|
||||||
.Where(o => queryable.Contains(o.Id)).ToListAsync();
|
.Where(o => queryable.Contains(o.Id)).ToListAsync();
|
||||||
|
|
||||||
|
@ -523,6 +571,7 @@ namespace Sample.MySql.Controllers
|
||||||
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
// var sysUserMods2 = await _defaultTableDbContext.Set<SysTest>().FromSqlRaw("select * from SysTest where id='2'").ToListAsync();
|
||||||
return Ok(sysUserMods);
|
return Ok(sysUserMods);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> Get211()
|
public async Task<IActionResult> Get211()
|
||||||
{
|
{
|
||||||
|
@ -556,13 +605,13 @@ namespace Sample.MySql.Controllers
|
||||||
public void get11()
|
public void get11()
|
||||||
{
|
{
|
||||||
var mySqlConnection = new MySqlConnection("链接字符串");
|
var mySqlConnection = new MySqlConnection("链接字符串");
|
||||||
var dbContextOptions1 = new DbContextOptionsBuilder<UnShardingDbContext>().UseMySql(mySqlConnection,new MySqlServerVersion(new Version()),b=>
|
var dbContextOptions1 = new DbContextOptionsBuilder<UnShardingDbContext>().UseMySql(mySqlConnection,
|
||||||
{
|
new MySqlServerVersion(new Version()),
|
||||||
b.EnableRetryOnFailure(10, TimeSpan.FromSeconds(10), null);
|
b => { b.EnableRetryOnFailure(10, TimeSpan.FromSeconds(10), null); }).Options;
|
||||||
}).Options;
|
var dbContextOptions2 = new DbContextOptionsBuilder<UnShardingDbContext>()
|
||||||
var dbContextOptions2 = new DbContextOptionsBuilder<UnShardingDbContext>().UseMySql(mySqlConnection,new MySqlServerVersion(new Version())).Options;
|
.UseMySql(mySqlConnection, new MySqlServerVersion(new Version())).Options;
|
||||||
var unShardingDbContext1 = new UnShardingDbContext(dbContextOptions1);//映射到202301模型
|
var unShardingDbContext1 = new UnShardingDbContext(dbContextOptions1); //映射到202301模型
|
||||||
var unShardingDbContext2 = new UnShardingDbContext(dbContextOptions2);//映射到202302模型
|
var unShardingDbContext2 = new UnShardingDbContext(dbContextOptions2); //映射到202302模型
|
||||||
// unShardingDbContext2.Database.CreateExecutionStrategy()
|
// unShardingDbContext2.Database.CreateExecutionStrategy()
|
||||||
var dbContextTransaction = unShardingDbContext1.Database.BeginTransaction();
|
var dbContextTransaction = unShardingDbContext1.Database.BeginTransaction();
|
||||||
unShardingDbContext2.Database.UseTransaction(dbContextTransaction.GetDbTransaction());
|
unShardingDbContext2.Database.UseTransaction(dbContextTransaction.GetDbTransaction());
|
||||||
|
@ -577,9 +626,9 @@ namespace Sample.MySql.Controllers
|
||||||
public async Task<IActionResult> get131()
|
public async Task<IActionResult> get131()
|
||||||
{
|
{
|
||||||
var list = new List<string>();
|
var list = new List<string>();
|
||||||
var idList = Enumerable.Range(1,50000).Select(o=>o.ToString()).ToList();
|
var idList = Enumerable.Range(1, 50000).Select(o => o.ToString()).ToList();
|
||||||
var sysUserMods = _defaultTableDbContext.Set<SysUserMod>()
|
var sysUserMods = _defaultTableDbContext.Set<SysUserMod>()
|
||||||
.Where(o=>idList.Contains(o.Id)).ToList();
|
.Where(o => idList.Contains(o.Id)).ToList();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,12 @@ namespace ShardingCore.Core.QueryTrackers
|
||||||
{
|
{
|
||||||
public interface IQueryTracker
|
public interface IQueryTracker
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 追踪数据对象
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity"></param>
|
||||||
|
/// <param name="shardingDbContext"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public object Track(object entity,IShardingDbContext shardingDbContext);
|
public object Track(object entity,IShardingDbContext shardingDbContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,14 @@ namespace ShardingCore.Core.RuntimeContexts
|
||||||
|
|
||||||
public interface IShardingRuntimeContext
|
public interface IShardingRuntimeContext
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 上下文类型
|
||||||
|
/// </summary>
|
||||||
Type DbContextType { get; }
|
Type DbContextType { get; }
|
||||||
|
/// <summary>
|
||||||
|
/// 模型锁提供者
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
IModelCacheLockerProvider GetModelCacheLockerProvider();
|
IModelCacheLockerProvider GetModelCacheLockerProvider();
|
||||||
IDbContextTypeAware GetDbContextTypeAware();
|
IDbContextTypeAware GetDbContextTypeAware();
|
||||||
IShardingProvider GetShardingProvider();
|
IShardingProvider GetShardingProvider();
|
||||||
|
|
|
@ -6,6 +6,10 @@ using ShardingCore.Sharding.ShardingComparision.Abstractions;
|
||||||
|
|
||||||
namespace ShardingCore.Sharding.Internals
|
namespace ShardingCore.Sharding.Internals
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 内存分片比较器
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
public class InMemoryShardingComparer<T> : IComparer<T>
|
public class InMemoryShardingComparer<T> : IComparer<T>
|
||||||
{
|
{
|
||||||
private readonly IShardingComparer _shardingComparer;
|
private readonly IShardingComparer _shardingComparer;
|
||||||
|
|
|
@ -74,6 +74,10 @@ namespace ShardingCore.Sharding.MergeEngines.Enumerables
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (_tableSequenceOrderConfig == null)
|
||||||
|
{
|
||||||
|
throw new ShardingCoreException("_tableSequenceOrderConfig is null,plz config IPaginationConfiguration.");
|
||||||
|
}
|
||||||
var appendAsc = _tableSequenceOrderConfig.AppendAsc;
|
var appendAsc = _tableSequenceOrderConfig.AppendAsc;
|
||||||
|
|
||||||
if (appendAsc)
|
if (appendAsc)
|
||||||
|
|
Loading…
Reference in New Issue