自定义类型,在Select时Json反序列化不正确 返回
waite 发布于2025/10/21
比如 A, StringStatus 类型为自定义个类,想实现 string类型的强类型Enum。
public class A{
public StringStatus? DispatchStatus { get; set; }
}
已经为 StringStatus 类添加了自定义的 NewtonJson Converter 和 ISugarDataConverter;正常查询ToListAsync()是可以的,但是添加了用了 Select 就会反序列化错误。
db.Queryable<A>().ToListAsync(); //正常
db.Queryable<A>().Select(a =>new{a.A}).ToListAsync(); //错误
追了下源码,使用Select后会进行Json的序列化与反序列化,在DataTable中数据序列化成string时,DispatchStatus 会变成 "{}". ISerializeService DeserializeObject中的value参数实际类似于这样,数据库中值是 正确的,比如"OK"等
{"Property1":"xxx","Property2":"xxx","Id":"730427571875909","DispatchStatus":{}}
再次序列化时 无法变成StringStatus类型
这个是个string类型枚举的基类
