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



热忱回答(11)
-
fate stay night VIP0
2020/10/28主键不支持更新,你看看你这个列是不是主键
0 回复 -
fate stay night VIP0
2020/10/28你把实体类发出来
0 回复 -
fate stay night VIP0
2020/10/28全部
0 回复 -
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 VIP0
2020/10/29不是主键 ,这个字段是一个枚举类型
0 回复 -
gr3t+2 VIP0
2020/10/29
实体里对应的就是这个枚举0 回复 -
fate stay night VIP0
2020/10/29@gr3t+2:正常是能重现出来的
UPDATE [sys_user] SET
[head_img] = @Const1 , [enabled] = @Const0 WHERE ( [guid] = CAST('a0e7c912-e6ca-4f6e-b17e-3a899596a568' AS NVARCHAR(MAX)))
0 回复 -
fate stay night VIP0
2020/10/29db.Updateable<SysUser>().SetColumns(it => new SysUser
{
Enabled = EnableEnum.disable,
HeadImg = " "
}).Where(it=>it.Guid==Guid.NewGuid().ToString()).ExecuteCommand();
我这边代码和你也没什么差别,就是重现不了
0 回复 -
fate stay night VIP0
2020/10/29@fate stay night:你可以写个控制台的的类发我,不然我重现不了
0 回复 -
gr3t+2 VIP0
2020/10/29我单独写控制台是可以的 不知道为什么,可能是我封装出问题了
0 回复 -
gr3t+2 VIP0
2020/11/11终于找到原因了,用源码调试发现它会自动过滤掉主键,跟踪发现数据库不小心设置为主键了,但实体类里是没有设置为主键的。

0 回复