Linq EF 根据字符列表排序或List根据列表排序以及Linq查询类型转换
//model.BBSCategoryIDList=>{10,23,12}或者{1,3,2}
//model.BBSCategoryIDs=>1,3,2或者10,23,12
//SqlFunctions命名空间System.Data.Objects.SqlClient;是linq中的一些方法整合
//如果model.BBSCategoryIDs是一个字符如1,3,2而不是10,23,33的,那么下面这个linq直接排序是可以实现以1,3,2顺序获取的
model.BBSCategoryNameList = dbContext.BBSCategories.Where(u => model.BBSCategoryIDList.Contains(u.ID)).
OrderBy(u => SqlFunctions.CharIndex(model.BBSCategoryIDs, SqlFunctions.StringConvert((double)u.ID))).Select(u => u.Title).ToList();
上方中linq的排序使用,只能针对char类型排序,而不能针对string,这主要是SqlFunctions.CharIndex方法是char型处理
其中有一个类型转换SqlFunctions.StringConvert((double)u.ID)),像一般的Convert.ToString(u.ID)或者是u.ID.ToString()在linq中是不允许使用的,此时,就需要使用SqlFunctions中的方法进行数据处理了。
因为本次我需要的是根据ID列表进行排序,没办法使用上面的方法,至于是否有能够实现的,暂时还没找到。现在的处理方式如下
List<IDAndTitleDTO> categoryIDTitleList = dbContext.BBSCategories.Where(u => model.BBSCategoryIDList.Contains(u.ID)).Select(u => new IDAndTitleDTO() { ID=u.ID,Title=u.Title}).ToList()
.OrderBy(u=>Array.IndexOf(model.BBSCategoryIDList.ToArray(),u.ID)).ToList();//获取到ID以及Title对象的列表,并且进行列表排序处理
model.BBSCategoryNameList = categoryIDTitleList.Select(u => u.Title).ToList();//最后获取名称列表
因为还没找到办法直接linq查询的时候就把名称列表给排序出来,所以使用list获取后再进行排序的方式进行处理。
Array.IndexOf(model.BBSCategoryIDList.ToArray(),u.ID)
Linq EF 根据字符列表排序或List根据列表排序以及Linq查询类型转换的更多相关文章
- LINQ&EF任我行(二)--LinQ to Object
(原创:灰灰虫的家http://hi.baidu.com/grayworm)LinQ to Objects是LinQ家庭的核心,其它的LinQ也使用了与LinQ to Objects相同的查询句法.最 ...
- 使用SQL如何把用逗号等字符隔开的字符串转换成列表(转)
如何把用逗号等字符隔开的字符串转换成列表,下面依逗号分隔符为例: 比如有一个字符串,其值为:香港,张家港,北京,上海用SQL把这个字符串转换成列表的方法是: 1.方法一 WITH A AS (SELE ...
- java List递归排序,传统方式和java8 Stream优化递归,无序的列表按照父级关系进行排序(两种排序类型)
当有一个List列表是无序的,List中的数据有parentid进行关联,通过java排序成两种排序类型: 所用的测试列表最顶级无parentid,若为特殊值,修改下判断方法即可. 第一种排序:按照树 ...
- Linq EF 添加数据执行事务处理
在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例 2012-12-12 10:39 5538人阅读 ...
- 跟我学SharePoint 2013视频培训课程——排序、过滤在列表、库中的使用(10)
课程简介 第10天,SharePoint 2013排序.过滤在列表.库中的使用. 视频 SharePoint 2013 交流群 41032413
- jquery拖拽排序,针对后台列表table进行拖拽排序(超实用!)
现在很多后台列表为了方便均使用拖拽排序的功能,对列表进行随意的排序. 话不多说 ,我在网上找了一些demo,经过对比,现在把方便实用的一个demo列出来,基于jqueryUI.js 先上html代码, ...
- python list列表sort、sorted、reverse排序
列表排序:sort是修改原列表,sorted提供原列表的一个有序副本 li=[2,1,4,5,0]li.sort() #默认从小到大print li结果:[0, 1, 2, 4, 5] li=[2,1 ...
- JAVA实现按列表中元素的时间字段排序
JAVA代码实现按列表中元素的时间字段排序 导语: 工作中遇到一个问题,调用第三方接口返回的数据没有按时间倒序排列,测试说要加,然后在网上找到一个解决办法,这里记录一下 需求: 如下图列表,按生日进行 ...
- java编程排序之内置引用类型的排序规则实现,和自定义规则实现+冒泡排序运用
第一种排序:[冒泡排序]基本数据类型的排序. [1]最简易的冒泡排序.效率低.因为比较的次数和趟数最多. /** * 最原始的冒泡排序. * 效率低. * 因为趟数和次数最多.都是按最大化的循环次数进 ...
随机推荐
- Tomcat 的 DefaultServlet
问题描述: 群里有人测试 Spring MVC,没有配置任何Controller,只配置了一个view resolver,指定了前缀后缀. 然后,他问的是 当访问 localhost:8080/tes ...
- Lua------------------unity关于lua的使用
关于Lua在Unity 中的使用 对于手机游戏,如果可以在线更新以实现bug修复.新功能添加等等,其好处自不必多说. 通过C#的反射机制,也可以实现某种程度上的脚本级更新,具体可以参考 http: ...
- C#连接SQL数据库代码
感觉很有必要总结一下 一:C# 连接SQL数据库 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername; ...
- ASP.NET后台输出js脚本代码
利用asp.net输出js我们大多数都会直接使用Respone.Write()然后根js格式的代码,再在页面调用时我们直接这样是完全可以实现的,下面我来给大家介绍另一种方法 我是我最初的想法以下是代码 ...
- iOS:自定义字体
转自: <iOS tips: Custom Fonts> Post by Steve Vlaminck My good friend google told me that using a ...
- Linux 查看系统硬件信息
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...
- 微信支付id出现的重复支付解决方法和app应用中多种支付方式之间的对比
1.微信支付的transId发起支付请求,未登录微信,先帐号登陆,否则直接去支付.这样的话,该transId跟该帐号绑定起来了, 如果下一次再重新使用该transId来支付请求,但是想切换其他的微信帐 ...
- 【转载】高可用的MongoDB集群详解
1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l 面向集合的存储:适合存储对象及JSON形式的数据. l ...
- mysql对执行结果进行html格式的输出?输出html格式?
需求描述: 在执行mysql命令的时候,有的时候需要将查询的结果输出到文件,如果想要html格式的,应该怎么输出, 在此记录下操作的过程. 1.通过tee命令结合--html输出查询结果到html文件 ...
- JSON未定义
用ajax实现了一个功能,在IE8和IE9中都能正常运行(大概是IE8和IE9都提供了原生的JSON解析和序列化),但是一旦切换到兼容模式就报JSON未定义的错误,解决方法是:判断当前浏览器是否支持J ...