使用分表功能,2025新表没有自动创建 返回

实体:
[SplitTable(SplitType.Year)] [SugarTable("mq_ConsumerLogs_{year}{month}{day}")] [SugarIndex("idx1", nameof(CreatedAt), OrderByType.Asc)] public class MQConsumerLogs { /// <summary> /// 主键 /// </summary> [SugarColumn(IsPrimaryKey = true)] public long Id { get; set; } /// <summary> /// 时间戳 /// </summary> [SplitField] [SugarColumn(InsertServerTime = true, IsNullable = true)] public DateTime CreatedAt { get; set; } }
数据库中已存在的数据表如下:
mq_ConsumerLogs_20240101
//当执行下面的代码,并不会自动创建2025年份的表,请问如果不使用insert方式自动创建表,还有其他方式吗? this._dbClient.CodeFirst.SplitTables().InitTables<MQConsumerLogs>();
热忱回答(4)
-
SonyXbox VIP0
2025/1/1。
0 回复 -
fate sta VIP0
2025/1/1插入才会建表,这个是同步表和初始化一张表
0 回复 -
SonyXbox VIP0
2025/1/2@fate sta:有其他方式可以解决吗?我想实现这种需要
0 回复 -
Shawn VIP0
2025/1/3我也发生相同问题,部分分表插入会发生找不到栏位 sugarIndex 之类的错误,
但部分有成功自动建立分表
发生在有建立复合键(多个 primary key 栏位) 的 table 几乎都没有自动建立新年度分表, 如下是其中一个,
类似错误讯息,发生过多次了,想请问是不是有哪些建表时需要注意没注意到的??
执行 insert 就报错,找不到 栏位名称 sugarIndex 的错误, 分表也没产生成功, 手动建表之后才能正常运作
await _client.AsTenant().BeginTranAsync();
await _client.Insertable<Menu>(menu).SplitTable().ExecuteCommandAsync();
......
await _client.AsTenant().CommitTranAsync();
[SplitTable(SplitType.Year)]
[SugarTable("MENU_{year}{month}{day}")]
[SugarIndex("IX_MENU_ID", "ID", OrderByType.Asc)]
[SugarIndex("IX_MENU_SequenceID", "SequenceID", OrderByType.Asc)]
public class Menu : BaseTable
{
/// <summary>
/// 菜单内部编号
/// </summary>
public long ID { get; set; }
/// <summary>
/// 菜单外部编号
/// </summary>
[SugarColumn(Length = 20)]
public string SequenceID { get; set; }
/// <summary>
/// 单位编号
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public long OrganizationID { get; set; }
/// <summary>
/// 单位名称
/// </summary>
public string OrganizationName { get; set; }
/// <summary>
/// 菜单的年份
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public int Year { get; set; }
/// <summary>
/// 菜单的月份
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public int Month { get; set; }
/// <summary>
/// 菜单顺序号
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public int Sequence { get; set; }
/// <summary>
/// 菜单名称
/// </summary>
[SugarColumn(Length = 60)]
public string Name { get; set; }
/// <summary>
/// 菜单类型编号
/// </summary>
public long FoodSupplyTypeID { get; set; }
/// <summary>
/// 菜单类型名称
/// </summary>
public string FoodSupplyTypeName { get; set; }
/// <summary>
/// 是否是素食菜单
/// </summary>
public bool IsVegetarianFood { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(Length = 300,IsNullable = true)]
public string Remark { get; set; }
}
0 回复