值类型的对象在SQLITE中会报错 返回
SqlSugar
沟通中
3
108
悬赏:0 飞吻
如果某个实体中有一个值对象的字段Status,值对象里Status字段是bool类型的,该实体作为1对1的导航插入会报错
报错内容:Object of type 'System.Int64' cannot be converted to type 'System.Boolean'.”
SqlSugar.dll!SqlSugar.DbBindAccessory.SetOwnsOne(object addItem x, bool isOwnsOne = true, SqlSugar.EntityInfo entityInfo = {SqlSugar.EntityInfo}, System.Data.IDataReader dataReader = {Microsoft.Data.Sqlite.SqliteDataReader}) 行 170
在 SqlSugar\DbBindAccessory.cs(170)
热忱回答(3)
-
No1.SUP VIP0
1周前自己做了一个自定义转换解决了,不过还是希望官方调节一下.不过不知道是不是我自己的原因的话当我没说.

public class ValueStatusConvert : ISugarDataConverter { public SugarParameter ParameterConverter<T>(object value, int i) { var name = "@myp" + i; // 写入数据库:将 bool 转为 int (0 或 1) int val = (bool)value ? 1 : 0; return new SugarParameter(name, val); } public T QueryConverter<T>(IDataRecord dr, int i) { var value = dr.GetValue(i); // 处理 SQLite 返回的 Int64 (long) if (value is long l) { return (T)(object)(l == 1); } // 处理可能出现的 Int32 if (value is int j) { return (T)(object)(j == 1); } return (T)value; } }0 回复 -
fate sta VIP0
1周前可以提供一个DEMO删 掉OBJ和BIN打包上传。
0 回复 -
No1.SUP VIP0
1周前demo就会报错了 最新版的 .net10
0 回复