codefirst不会自动创建表问题 返回
复现方式:
按季度分表,数据库已存在表table_20240401,当前时间是2024-09-01,即是我隔了几个月没启动过程序,当我再次启动程序的时候不会自动创建表table_20240701,已经遇到过几次该问题了,求助作者帮忙解决一下。
热忱回答(4)
-
fate sta VIP01个月前
插入会建表的
0 回复 -
fate sta VIP01个月前
你是不是没有设置分表字段,启动不会建表,建表触发点在插入
0 回复 -
fate sta VIP01个月前
还有疑问提供 实体类
0 回复 -
Q着木马了… VIP01个月前
程序启动时会执行这句:
Type[] entityTypes = typeof(QrBoxBarRelated).Assembly.GetTypes()
.Where(it => it.FullName.Contains("Entity.DBEntity.")) //命名空间过滤,当然你也可以写其他条件过滤
.ToArray();
var splitTableTypes = entityTypes
.Where(x => x.CustomAttributes.Any(p => p.AttributeType == typeof(SplitTableAttribute))).ToArray();
//初始化分表,根据实体自动生成表结构,若实体有更新数据库表结构也会更新
sqlSugar.CodeFirst.SplitTables().InitTables(splitTableTypes);
实体类:
[SplitTable(SplitType.Season)]
[SugarTable("report_record_{year}{month}{day}")]
[SugarIndex("index_report_record_p_date", nameof(ReportRecord.ProductDate), OrderByType.Desc)]
public class ReportRecord: BaseEntity<long>, IAuditOperator
{
/// <summary>
/// 采集时间
///</summary>
[SugarColumn(ColumnName="collect_time")]
[SplitField]
public DateTime CollectTime { get; set; }
/// <summary>
/// 上传状态(1:已上传,2:上传失败,3:上传成功)
///</summary>
[SugarColumn(ColumnName="upload_status")]
public int UploadStatus { get; set; }
/// <summary>
/// 上传时间
///</summary>
[SugarColumn(ColumnName="upload_time",IsNullable = true)]
public DateTime? UploadTime { get; set; }
/// <summary>
/// 生产时间
///</summary>
[SugarColumn(ColumnName = "product_date",IsNullable = true)]
public DateTime ProductDate { get; set; }
/// <summary>
/// 重试次数
///</summary>
[SugarColumn(ColumnName="retry_count")]
public int RetryCount { get; set; }
/// <summary>
/// 异常原因
///</summary>
[SugarColumn(ColumnName="reason",IsNullable = true,ColumnDataType = "varchar(256)")]
public string Reason { get; set; }
/// <summary>
/// 拓展字段
///</summary>
[SugarColumn(ColumnName="extend_filed",IsNullable = true,ColumnDataType = "varchar(256)")]
public string ExtendFiled { get; set; }
}
问题1:
sqlSugar.CodeFirst.SplitTables().InitTables(splitTableTypes);这句会自动创建分表吗?
问题2:
只执行查询report_record表会创建分表吗?以目前情况应该是不会,会报错:表不存在。0 回复