1
我有两个表,一个有450行,另一个是一个排序表,将有很多比这少。我希望能够通过使用左连接对表的集合进行排序,并且希望第二个表中的项目由名为“SortOrder”的Int列进行排序。像这样:Linq To SQL DefaultIfEmpty
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,则它应该在列表中第一个,但它不是。不过,它按标题排序。
我在这里做错了什么?