Linq to SQL: 自定义排序

发布时间:2017-2-26 17:58:41 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Linq to SQL: 自定义排序",主要涉及到Linq to SQL: 自定义排序方面的内容,对于Linq to SQL: 自定义排序感兴趣的同学可以参考一下。

转载地址 Linq to SQL: 自定义排序 - Q.yuhen   某些时候我们需要按照某个特定的序列来完成结果排序,比如说按 in 条件中的 Id 顺序返回文章(Archive)。   SQL select Id, Title from Archive where Id in (25, 23, 19, 21, 22, 26) order by (   select    case Id      when 25 then 0      when 23 then 1      when 19 then 2      when 21 then 3      when 22 then 4      when 26 then 5    end)   SQL 2 select Id, Title from Archive where Id IN (25, 23, 19, 21, 22, 26)  order by CHARINDEX('|' + LTRIM(RTRIM(STR(Id))) + '|', '|25|23|19|21|22|26|')   (本方法由 "雨恨云愁" 提供,通过判断 Id 在编号组合字符串中的索引位置完成排序。注意不能删除 LTRIM、RTRIM,否则 CHARINDEX 无效)   Linq to SQL var ids = new[]{ 25, 23, 19, 21, 22, 26 }; var q = Archives.Where(a => ids.Contains(a.Id)).ToArray(); var r = q.OrderBy(a => Array.IndexOf(ids, a.Id)); foreach (var item in r) {   Console.WriteLine("{0}, {1}", item.Id, item.Title); }   Linq to SQL 不支持本地集合操作。变通的方法是:使用 ToArray() 获取结果,改用 Linq to Object 完成排序工作。(这个方法不是最佳方案,哪位有更好的解决方法,敬请告知!谢谢)

上一篇:ACE+TAO TAO已被广泛地应用于以下领域:指挥与控制、电信、数据通讯、医药工程、分布式交互仿真以及金融服务
下一篇:Oracle存储过程基本语法

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。