Vastbase海量数据库查询byte[]字段报错 返回
SqlSugar
132
悬赏:0 飞吻
SqlSugar.SqlSugarException: SqlSugarException.NotSupportedException: "longblob" Type NotSupported, DbBindProvider.GetPropertyTypeName error. at SqlSugar.Check.ThrowNotSupportedException(String message) at SqlSugar.PostgreSQLDbBind.GetPropertyTypeName(String dbTypeName) at SqlSugar.IDataReaderEntityBuilder`1.BindMethod(ILGenerator generator, EntityColumnInfo columnInfo, Int32 ordinal) at SqlSugar.IDataReaderEntityBuilder`1.BindField(ILGenerator generator, LocalBuilder result, EntityColumnInfo columnInfo, String fieldName) at SqlSugar.IDataReaderEntityBuilder`1.CreateBuilder(Type type) at SqlSugar.DbBindAccessory.<>c__DisplayClass4_0`1.<GetEntityList>b__1() at SqlSugar.ReflectionInoCore`1.GetOrCreate(String cacheKey, Func`1 create) at SqlSugar.ReflectionInoCacheService.GetOrCreate[V](String cacheKey, Func`1 create, Int32 cacheDurationInSeconds) at SqlSugar.DbBindAccessory.GetEntityList[T](SqlSugarProvider context, IDataReader dataReader) at SqlSugar.DbBindProvider.DataReaderToList[T](Type type, IDataReader dataReader) at SqlSugar.QueryableProvider`1.GetData[TResult](Boolean isComplexModel, Type entityType, IDataReader dataReader) at SqlSugar.QueryableProvider`1.GetData[TResult](KeyValuePair`2 sqlObj) at SqlSugar.QueryableProvider`1._ToList[TResult]() at SqlSugar.QueryableProvider`1.ToList() at SqlSugar.QueryableProvider`1.First() at 调用入口
代码:
void Main()
{
using var sugarClient = new SqlSugarClient(new ConnectionConfig
{
ConnectionString = "Host=HOST;Username=USER;Port=5432;Database=MYDB;Search Path=MYSCHEMA;No Reset On Close=True;Password=ABCDE",
DbType = SqlSugar.DbType.Vastbase,
IsAutoCloseConnection = true,
MoreSettings = new ConnMoreSettings()
{
DisableNvarchar = true //有些版本需要禁用Nvarchar(PS: 官方文档在这有问题,DisableNvarchar 敲成了 DisableNarvchar)
}
});
sugarClient.Queryable<sample_table>().First().Dump();
}
public partial class sample_table
{
[SugarColumn(IsPrimaryKey = true)]
public string key { get; set; }
public byte[] bytes { get; set; }
}检查发现内部通过DataRecord.GetDataTypeName(ordinal), 从DbDataReader获取由数据库返回的数据库类型名称,而我们进行验证的数据库由MySQL迁移而来,该列似乎在迁移后保留了MySQL中longblob的列名称作为别名,导致报错

看起来我这边应该先去检查一下迁移数据类型映射问题