无实体插入和更新PG,当数据为json或者NULL时,出错 返回

使用db.Insertable(dc).AS(
"student"
).ExecuteCommand()时,
无实体插入和更新sqlserver正常,但使用PG时,存在问题
(1)当某个属性值为NULL时,出错
错误内容:字段 "XXX" 的类型为 bigint, 但表达式的类型为 text
(2)当某个属性类型为json, 出错
错误内容:字段 "XXX" 的类型为 json, 但表达式的类型为 text
热忱回答(5)
-
fate sta VIP0
2025/1/15看文档:动态建类, 要用这种方式
0 回复 -
翔翔 VIP0
2025/1/15@fate sta:有没可能提供一个扩展接口或者参数,让我传个类型进去
0 回复 -
翔翔 VIP0
2025/1/15毕竟无实体更新和插入是支持的,希望能够完全走通
0 回复 -
翔翔 VIP0
2025/1/17我暂时fork出来源代码,做了最小的修改:
1.修改InsertableProvider<T>
方法Init()
方法SetInsertItemByDic(int i, T item, List<DbColumnInfo> insertItem)
1.修改UpdateableProvider
方法Init()
方法SetUpdateItemByDic2(int i, T item, List<DbColumnInfo> updateItem)
调用时,仍然使用IInsertable<T> Insertable<T>(List<T> insertObjs)
T使用Dictionary<SugarColumn, object>来替代Dictionary<string, object>
sqlsugar仍然是Java、.NET世界使用无实体支持低代码最好的工具,没有之一!
0 回复 -
fate sta VIP0
2025/1/17多库还是建议动态建类方式,这种几乎可以用AOP等几乎所有类的功能
0 回复