update生成的sql枚举类型的字段漏掉了 返回

C#论坛 老数据
11 1607

图片.png

图片.png图片.png

热忱回答11

  • 主键不支持更新,你看看你这个列是不是主键

    0 回复
  • 你把实体类发出来

    0 回复
  • 全部

    0 回复
  • gr3t+2 gr3t+2 VIP0
    2020/10/29

     /// <summary>
        /// 系统用户
        /// </summary>
        [SugarTable("sys_user")]
        public class SysUser
        {
            /// <summary>
            /// guid
            /// </summary>
            [SugarColumn(ColumnName = "guid", IsNullable = false, IsPrimaryKey = true, IsIdentity = false)]
            public string Guid { get; set; }
            /// <summary>
            /// 用户名
            /// </summary>
            [SugarColumn(ColumnName = "user_name")]
            public string UserName { get; set; }
            /// <summary>
            /// 用户密码
            /// </summary>
            [SugarColumn(ColumnName = "user_pwd")]
            public string UserPwd { get; set; }
            /// <summary>
            /// 盐值
            /// </summary>
            [SugarColumn(ColumnName = "salt_value")]
            public string SaltValue { get; set; }
            /// <summary>
            /// 姓名
            /// </summary>
            [SugarColumn(ColumnName = "true_name")]
            public string TrueName { get; set; }
            /// <summary>
            /// 性别(0=不详;1=男;2=女)
            /// </summary>
            [SugarColumn(ColumnName = "gender")]
            public int Gender { get; set; }
            /// <summary>
            /// 头像
            /// </summary>
            [SugarColumn(ColumnName = "head_img")]
            public string HeadImg { get; set; }
            /// <summary>
            /// 是否启用
            /// </summary>
            [SugarColumn(ColumnName = "enabled")]
            public EnableEnum Enabled { get; set; }
        }

    0 回复
  • gr3t+2 gr3t+2 VIP0
    2020/10/29

    不是主键 ,这个字段是一个枚举类型

    0 回复
  • gr3t+2 gr3t+2 VIP0
    2020/10/29

    图片.png实体里对应的就是这个枚举

    0 回复
  • @gr3t+2:正常是能重现出来的 

    UPDATE [sys_user]  SET

                [head_img] = @Const1 , [enabled] = @Const0   WHERE ( [guid] = CAST('a0e7c912-e6ca-4f6e-b17e-3a899596a568'  AS NVARCHAR(MAX)))


    0 回复
  •     db.Updateable<SysUser>().SetColumns(it => new SysUser

                {

                    Enabled = EnableEnum.disable,

                    HeadImg = " "

                }).Where(it=>it.Guid==Guid.NewGuid().ToString()).ExecuteCommand();

    我这边代码和你也没什么差别,就是重现不了

    0 回复
  • @fate stay night:你可以写个控制台的的类发我,不然我重现不了

    0 回复
  • gr3t+2 gr3t+2 VIP0
    2020/10/29

    我单独写控制台是可以的 不知道为什么,可能是我封装出问题了

    0 回复
  • gr3t+2 gr3t+2 VIP0
    2020/11/11

    终于找到原因了,用源码调试发现它会自动过滤掉主键,跟踪发现数据库不小心设置为主键了,但实体类里是没有设置为主键的。图片.png图片.png

    0 回复