如何逐个InitTables分区历史表 返回
大神,我碰到如下需求,请指点
数据库: SQLServer2019 标准版
当业务发生变化的时候,历史表增加了一个字段,如果部增加,直接插入历史数据就会报错。我写了一个工具,首先工具初始化表,希望能够逐个去初始化历史表,不用原有的函数,是因为数据多了并且开启事务,导致不可用。
函数如下,
var tableName = dt.TableName; // 获得具体某个历史表表名
try
{
db.CodeFirst.InitTables() ?? //但是这里不知道该如何写了?
}
public void InitPTableOneByOne(SqlSugarScope db, Type type)
{
WriteMessage($"Init PTable {type.Name} ...");
var tables = db.SplitHelper(type).GetTables();
if (tables == null || !tables.Any())
{
return;
}
for (var i=0; i < tables.Count; i++)
{
string msg;
var dt = tables[tables.Count - 1];
var tableName = dt.TableName; // 获得具体某个历史表表名
try
{
db.CodeFirst.InitTables() ?? //但是这里不知道该如何写了?
}
catch(Exception ex)
{
msg = ex.Message;
}
if (!string.IsNullOrWhiteSpace(msg))
{
WriteMessage(msg);
}
}
}
热忱回答(3)
-
fate sta VIP01个月前
db.CodeFirst.As<T>(表名).InitTables<T>() ;
0 回复 -
joyswing VIP01个月前
请问这里的T是分区表的Model,还是不需要使用分区表标志
0 回复 -
fate sta VIP01个月前
codefirst只支持分表,不支持分区
0 回复