Ulid转换失败, Invalid cast from 'System.String' to 'NUlid.Ulid'. 返回
天天流浪 发布于2026/2/25
版本号: 5.1.4.205
主键id是Ulid类型,查询id 转换失败:Invalid cast from 'System.String' to 'NUlid.Ulid'.
,但是我直接查询出string类型, 再手动转成Ulid是可以的,sql如下:
var id = await _db.Queryable<实体类>().Select(x => x.Id).FirstAsync();
找了文档,配置了下面的转换也不行,
public class UlidToStringConverter : ISugarDataConverter
{
public SugarParameter ParameterConverter<T>(object columnValue, int columnIndex)
{
var name = "@Ulid" + columnIndex;
if (columnValue == null) return new SugarParameter(name, null);
return new SugarParameter(name, columnValue.ToString());
}
public T? QueryConverter<T>(IDataRecord dataRecord, int dataRecordIndex)
{
var str = dataRecord.GetValue(dataRecordIndex).ToString();
if (string.IsNullOrEmpty(str)) return default(T);
var ulid = Ulid.Parse(str);
if (ulid is T result) return result;
throw new NotImplementedException();
}
}
热忱回答(2)
-
fate sta VIP0
2026/2/25public T? QueryConverter<T>(IDataRecord dataRecord, int dataRecordIndex)
重写的 这个方法打断点去调试。
0 回复 -
fate sta VIP0
2026/2/25逻辑全部在你这儿。只要你写的对就OK
0 回复