C/C++教程

解决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确实很好用,只是我太菜了而已。

这篇关于解决sqlsugar使用OrdeBy实现排序报错:无法从“SqlSugar.OrderByType”转换为“System.Collections.Generic.IComparer<string>?”的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!