Closed TTnTTT closed 1 year ago
2个方法 1 新建一个类 没主键 2 删掉在插入 因为主键改了 更新意义就不存在了
主键在sqlsugar是禁止更新操作的也是为了数据安全
2个方法 1 新建一个类 没主键 2 删掉在插入 因为主键改了 更新意义就不存在了
主键并不会被改,如果where能找到数据修改的主键也会是跟之前一样的主键,我用过的其他ORM框架当没有字段要修改时并不
主键在sqlsugar是禁止更新操作的也是为了数据安全
我建议这个应该让用户自己决定,默认可以是不能修改主键,有时候使用方便比数据安全更重要。而且一个主键的修改并不会有什么安全隐患。
直接删除在加就行了 ,没人修改主键的
主键都要修改你定义主键意义何在
主键都要修改你定义主键意义何在
不是,问题是现在这种基础的修改都会报错,问题关键不在修改主键,可以不修改主键,但至少保证我调用的时候不会报错吧。总不能每一个修改我都加个try-catch吧。
update set where TemplateId=@TemplateId 你这个错是没有一列可以更新的
错误我认为还是要提示出来的,这样用户知道是怎么回事
你这个也好处理如果一列没有就不更新
或者强制给一个更新时间这样就不会出现这种问题了
我使用了
SqlSugarConfig.client.Updateable<>(entity).IgnoreColumns(ignoreAllNullColumns:true)
进行更新操作(不想把不需要更新的内容变成null), 因为实体没有任何需要更新的内容所以执行的sql是这样的update set where TemplateId=@TemplateId
,这样的SQL是有问题的,所以我只有把主键的原始值设置给主键, 预期的SQL是这样的:update set TemplateId=@TemplateId where TemplateId=@TemplateId
这样就不会报错了,但是我用了下面图片2的方式后最终SQL并没有对主键进行更新。 请问这个问题还有其他解决方式吗? 实体类定义: 问题截图: