Vb.net 具有连接和排序依据的Linq
我有一个问题似乎根本不尊重我的ORDERBY条款 有人能帮我解决这个问题吗Vb.net 具有连接和排序依据的Linq,vb.net,linq,join,sql-order-by,Vb.net,Linq,Join,Sql Order By,我有一个问题似乎根本不尊重我的ORDERBY条款 有人能帮我解决这个问题吗 Dim Result = ((From z As lnkCategorySubCategory In dbContext.lnkCategorySubCategories Join x As SubItem In dbContext.SubItems On x.Id Equals z.CategoryId Join p As lnkItem
Dim Result = ((From z As lnkCategorySubCategory In dbContext.lnkCategorySubCategories
Join x As SubItem In dbContext.SubItems On x.Id Equals z.CategoryId
Join p As lnkItemsCategory In dbContext.lnkItemsCategories On z.CategoryId Equals p.ItemCategoryId
Order By z.IsHeadColumn Descending
Order By z.Order Descending
Select x.Name)).Distinct
没有更多的信息,我无法告诉你是什么导致了你的问题。然而,如果我要胡乱猜测,我建议你改变这一点:
Order By z.IsHeadColumn Descending
Order By z.Order Descending
为此:
Order By z.IsHeadColumn, z.Order descending
我觉得orderby z.IsHeadColumn descending,z.Order descending应该可以用这里的问题是我没有选择我选择的列,所以我需要写一些类似的东西来解决这个问题
Dim Result = ((From z As lnkCategorySubCategory In dbContext.lnkCategorySubCategories
Join x As SubItem In dbContext.SubItems On x.Id Equals z.CategoryId
Join h As lnkSubItemImageLink In dbContext.lnkSubItemImageLinks On x.Id Equals h.SubItemId
Join p As lnkItemsCategory In dbContext.lnkItemsCategories On z.CategoryId Equals p.ItemCategoryId
Select x.Name, h.ImageLink, z.IsHeadColumn, z.Order)).Distinct.OrderByDescending(
Function(u) u.IsHeadColumn).ThenBy(Function(j) j.Order).ToDictionary(Function(x) x.Name, Function(h) h.ImageLink)
显示一个示例,显示结果当前的外观,另一个示例显示结果应如何排序。我将此作为单独的答案添加的唯一原因是,考虑到这是一个syntaxI目前无法投票的查询,我想知道Order By将如何编译。现在我已经发布了,让我补充这么多,您可以使用带有方法语法的ThenBy extn方法。另一件事我觉得是连接看起来不正确。不应该是“将x作为dbContext.SubItems中的子项连接到x.CategoryId等于z.Id”吗?您在这里进行排序的方式是正确的,我在那里也没有问题,我的问题是“没有选择”我正在执行“OrderBy On”的那些列,请查看我的答案以了解更多信息。感谢您抽出时间对此作出回应。