首页 > 数据库> > 解决sqlsugar使用OrdeBy实现排序报错:无法从“SqlSugar.OrderByType”转换为“System.Collections.Generic.IComparer<string>?”
解决sqlsugar使用OrdeBy实现排序报错:无法从“SqlSugar.OrderByType”转换为“System.Collections.Generic.IComparer<string>?”
作者:互联网
项目场景:
基于.Net 5的.Net core5.0的MVC项目
直接上才(代)艺(码)
错误代码:
List<user> list = new();
var lists = db.Queryable<user>().ToList();
lists.OrderBy(it => it.LoginName, SqlSugar.OrderByType.Desc);
这样写会报错: 参数 3: 无法从“SqlSugar.OrderByType”转换为“System.Collections.Generic.IComparer?”
正确代码:list = db.Queryable<user>().OrderBy(it => it.LoginName, SqlSugar.OrderByType.Desc).ToList();
原因分析:
刚开始看到找个错误我也是一头雾水:以至于我都准备用Sql语句来写了,但对其他代码有影响,而且执行效率会变低。在这里错误的主要原因是:把.ToList()写在了前面,导致从数据库表中得到的数据已经转换为数组,如何用sqlSugar里面的sql语句进行排序?发现的时候觉得自己是真垃圾!!!
解决方案:
将.ToList()放在最后就可以了,再骂自己一句:你特么真蠢、真垃圾。希望大家不要犯我这种无聊的错误。最后说一句:SqlSugar确实很好用,只是我太菜了而已。
标签:IComparer,string,ToList,Collections,OrderByType,报错,SqlSugar 来源: https://blog.csdn.net/weixin_46231579/article/details/121501669