达梦数据库,codefirs模式,表的主键列ID是自增列,启动项目提示:试图修改自增列[ID] 返回

SqlSugar 沟通中
9 504

达梦数据库,启用codefirst,已创建的表的主键是自增列,二次启动后提示,会再次自行修改主键列,然后就报错了,日志显示如下:[Sql]:ALTER TABLE "BIS_TAKE_NOTI_BAG" modify ("ID" NUMBER(19,0)   )


Unhandled exception. SqlSugar.SqlSugarException: 第1 行附近出现错误:
试图修改自增列[ID]
   at SqlSugar.Check.Exception(Boolean isException, String message, String[] args)
   at SqlSugar.CodeFirstProvider.InitTables(Type entityType)
   at SqlSugar.CodeFirstProvider.InitTables[T]()
   at Demo.Program.InitDm() in E:\Development\Personal\2024\SqlSugarDemo\Demo\Program.cs:line 56
   at Demo.Program.Main(String[] args) in E:\Development\Personal\2024\SqlSugarDemo\Demo\Program.cs:line 12
   at Demo.Program.<Main>(String[] args)

热忱回答9

  • fate sta fate sta VIP0
    2024/12/31

    提供出错的实体类

    0 回复
  • fate sta fate sta VIP0
    2024/12/31

    新表还是老表

    0 回复
  • 老暮 老暮 VIP0
    2024/12/31

    @fate sta:新表,实体类如下:

    ///<summary>

    ///交叉配血血袋

    ///</summary>

    [SugarTable("bis_config_bag", TableDescription = "交叉配血血袋")]

    [SugarIndex("IX_BIS_CONFIG_BAG_DON_ID", nameof(bis_config_bag.don_id), OrderByType.Asc)]

    public class bis_config_bag

    {


        ///<summary>

        ///主键ID配血报告单ID

        ///</summary>

        [SugarColumn(ColumnName = "id", IsPrimaryKey = true, OracleSequenceName = "SQ_BIS_CONFIG_BAG")]

        public long Id { get; protected set; }


        ///<summary>

        ///入库表ID

        ///</summary>

        [SugarColumn(ColumnDescription = "入库表ID", IsPrimaryKey = true)]

        public long input_id { get; set; }


        ///<summary>

        ///条码13位和15位数条码

        ///</summary>

        [SugarColumn(Length = 30, ColumnDescription = "条码13位和15位数条码")]

        public string? don_id { get; set; }


        ///<summary>

        ///血量

        ///</summary>

        [SugarColumn(DecimalDigits = 2, ColumnDescription = "血量")]

        public decimal blood_amount { get; set; }


        ///<summary>

        ///单位

        ///</summary>

        [SugarColumn(Length = 30, ColumnDescription = "单位")]

        public string? blood_unit { get; set; }


        ///<summary>

        ///采集时间(捐血时间、采血时间)

        ///</summary>

        [SugarColumn(ColumnDescription = "采集时间(捐血时间、采血时间)")]

        public DateTime? donor_collect_time { get; set; }


        ///<summary>

        ///过期时间

        ///</summary>

        [SugarColumn(ColumnDescription = "过期时间")]

        public DateTime expire_time { get; set; }


        ///<summary>

        ///入库时间

        ///</summary>

        [SugarColumn(ColumnDescription = "入库时间")]

        public DateTime input_time { get; set; }

    }


    0 回复
  • fate sta fate sta VIP0
    2024/12/31

        public long Id { get; protected set; } 

     改成public

    0 回复
  • fate sta fate sta VIP0
    2024/12/31

        [SugarColumn(DecimalDigits = 2, ColumnDescription = "血量")]

        public decimal blood_amount { get; set; }

    这个也错的,没设置length

    0 回复
  • fate sta fate sta VIP0
    2024/12/31

        [SugarColumn(DecimalDigits = 2, ColumnDescription = "血量")]

        public decimal blood_amount { get; set; }

    这个也错的,没设置length

    0 回复
  • fate sta fate sta VIP0
    2024/12/31

    并且自增不能修改 ,你的实体没有配置自增 =true

    0 回复
  • fate sta fate sta VIP0
    2024/12/31

    达梦不用 OracleSequenceName = "SQ_BIS_CONFIG_BAG"

    0 回复
  • 老暮 老暮 VIP0
    2024/12/31

    @fate sta:好的,谢谢大佬

    0 回复