Tengo LINQ Script donde el grupo por clave posiblemente sea nulo. Obtuve el resultado correctamente y ahora quiero ordenar primero nulo y luego en orden descendente. porque el grupo por clave puede ser nulo, por lo que no puedo verificar como .hasValue.
En el siguiente enfoque, obtengo una excepción nula, ya que parece que no estoy manejando el orden nulo correctamente.
var v25 = (from transaction in filteredTransactions join schedule in schedules on new { siteId = transaction.LoginSiteID, startDate = transaction.LoginDateTime.Date, payrollNumber = transaction.PayrollNumber } equals new { siteId = schedule.SiteId, startDate = schedule.StartTime.Value.Date, payrollNumber = schedule.PayrollNumber } into ezi_s_t from scheduleTransactions in ezi_s_t.DefaultIfEmpty() group transaction by scheduleTransactions into groupedScheduleTransactions select new { Schedule = groupedScheduleTransactions.Key, Transactions = groupedScheduleTransactions.ToList() } ) .OrderBy(x=> x.Schedule == null? null : x.Schedule.EziScheduleId) .ToList();Necesita OrderByDescending() cuando es nulo y luego usar ThenByDescending()
.OrderByDescending(x=> x.Schedule == null) .ThenByDescending(x => x.Schedule?.EziScheduleId); Y sobre su comentario, la razón por la que obtiene el error System.NullReferenceException es porque si Schedule es nulo, no puede acceder a sus propiedades (ya que no hay ninguna), por lo que debe cambiar x.Schedule.EziScheduleId a x.Schedule?.EziScheduleId
Demostración en vivo