visual studio net vb.net linq linq-to-sql lambda

studio - Cómo ordenar por varias columnas usando expresiones lambda de VB.Net



select lambda c# list (2)

Deberías usar ThenBy así:

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder) _ .ThenBy(Function(c As WebCategory) c.WebPage.DisplayOrder) _ .ToList()

He hecho una breve búsqueda de este sitio y he buscado en Google, pero parece que no puedo encontrar un buen ejemplo. Todavía estoy tratando de entender mi "Expresión Lambda".

¿Alguien aquí me puede dar un ejemplo de orden por múltiples columnas usando VB.Net y Linq-to-SQL usando una expresión lambda?

Aquí está mi código existente, que devuelve una lista ordenada usando una sola columna para ordenar los resultados:

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder).ToList

Nota: el objeto de categoría web tiene un objeto de página web secundario (basado en una clave externa). Me gustaría ordenar primero por WebPage.DisplayOrder, luego por WebCategory.DisplayOrder.

Intenté encadenar las ordenaciones, como a continuación, y aunque se compiló y se ejecutó, no parecía devolver los datos en el orden que yo quería.

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder).OrderBy(Function(c As WebCategory) c.WebPage.DisplayOrder).ToList

Gracias por adelantado.


Encontré este artículo de MSDN en una búsqueda rápida en Google. Supongo que lo que buscas es esto:

Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder). _ ThenBy(Function(c As WebCategory) c.WebPage.DisplayOrder).ToList