codefirst不会自动创建表问题 返回

SqlSugar 沟通中
4 287

复现方式:
按季度分表,数据库已存在表table_20240401,当前时间是2024-09-01,即是我隔了几个月没启动过程序,当我再次启动程序的时候不会自动创建表table_20240701,已经遇到过几次该问题了,求助作者帮忙解决一下。

热忱回答4

  • fate sta fate sta VIP0
    1个月前

    插入会建表的

    0 回复
  • fate sta fate sta VIP0
    1个月前

    你是不是没有设置分表字段,启动不会建表,建表触发点在插入

    0 回复
  • fate sta fate sta VIP0
    1个月前

    还有疑问提供 实体类

    0 回复
  • 程序启动时会执行这句:


    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 回复