首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq To SQL DefaultIfEmpty

Linq To SQL DefaultIfEmpty
EN

Stack Overflow用户
提问于 2012-06-19 23:17:13
回答 1查看 945关注 0票数 1

我有两个表,一个有450行,另一个是排序表,它的行数要少得多。我希望能够使用左连接对表的集合进行排序,并希望第二个表中的项按名为“SortOrder”的Int列排序。如下所示:

代码语言:javascript
复制
var g_getFragments = (from c in context.Fragments
                                          join fso in context.FragmentSortOrders
                                          on c.ID equals fso.ID into sr
                                          from x in sr.DefaultIfEmpty()
                                         select new { c.ID_Section, c.ID, c.Title, c.IsManagementFragment, SortOrder = x.SortOrder ?? Int32.MaxValue})
                                         .OrderBy(o => o.SortOrder)
                                         .OrderBy(f => f.Title)
                                         .ToList();

这会像预期的那样返回所有450行,但是我的顺序不正确。我想让第二个表中的SortOrder值排在第一位,如果它是null,那么将它设置为Int32.MaxValue,这样它就会排在最后。因此,如果我在第一个表中有1个项目,并且第二个表中的SortOrder的值为1,那么它应该是列表中的第一个项目,但它不是。

我在这里做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-19 23:21:04

将第二个OrderBy更改为ThenBy

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11104097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档