使用自动分表后,使用SplitTableGetTablesFunc在insert 时无效 返回

全部代码
// See https://aka.ms/new-console-template for more information
using CollectPlatform.Core;
using SqlSugar;
using SqlSugar.SplitTableExtensions;
using System.Net.Http;
List<SplitTableInfo> splitTableInfos = new List<SplitTableInfo>();
//创建数据库对象 (用法和EF Dappper一样通过new保证线程安全)
SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "",
DbType = DbType.Dm,
IsAutoCloseConnection = true
},
db =>
{
StaticConfig.SplitTableGetTablesFunc = () =>
{
if (splitTableInfos.Count > 0)
{
Console.WriteLine("进入缓存表名称");
return splitTableInfos;
}
else
{
Console.WriteLine("第一次进入缓存表名称");
var list = db.DbMaintenance.GetTableInfoList(false);
splitTableInfos = list.Select(it => new SplitTableInfo() { TableName = it.Name }).ToList();
return splitTableInfos;
}
};
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
};
});
Console.WriteLine("Hello, World!");
var sysOpLog = new SYS_LOG_OP
{
Guid = Guid.NewGuid().ToString().Replace("-", ""),
Name = "测试",
OpType = 1,
Success = "0",
Message = "成功",
Ip = "",
Location = "",
Browser = "",
Os = "",
Url = "",
ClassName = "",
MethodName = "",
ReqMethod = "",
Param = "",
//Param = JsonSerializerUtility.Serialize(context.ActionArguments),
//Result = JsonSerializerUtility.Serialize(actionContext.Result),
Result = "", //非空约束
ElapsedTime = 1,
OpTime = DateTime.Now,
LX = 0,
Account = "" //非空约束
};
Console.WriteLine("第一次查询");
Db.Queryable<SYS_LOG_OP>().Where(x => x.Guid == "").SplitTable().ToList();
for (int j = 0; j < 2; j++)
{
int count = Db.Insertable(sysOpLog).SplitTable().ExecuteCommand();
}
int i = 0;
输出结果SQL截图
热忱回答(1)
-
fate sta VIP0
2024/12/31配置schema 到符串可以解决
0 回复