数据库
首页 > 数据库> > 解决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