Consulta C # LINQ - Agrupar por

Me está costando entender cómo puedo formar una consulta LINQ para hacer lo siguiente:

Tengo una tabla CallLogs y quiero recuperar un solo resultado que representa la llamada que tiene la duración más larga.

La fila se ve así:

[ID] [RemoteParty] [Duración]

Puede haber varias filas para la misma RemoteParty, cada una de las cuales representa una llamada de una duración particular. Quiero saber qué RemoteParty tiene la duración total más larga.

Usando LINQ, llegué hasta aquí:

var callStats = (from c in database.CallLogs
                 group c by c.RemoteParty into d
                 select new
                 {
                      RemoteParty = d.Key,
                      TotalDuration = d.Sum(x => x.Duration)
                 });

Así que ahora tengo un resultado agrupado con la duración total de cada RemoteParty, pero necesito el único resultado máximo.

[DistinctRemoteParty1] [Duración]

[DistinctRemoteParty2] [Duración]

[DistinctRemotePartyN] [Duración]

¿Cómo puedo modificar la consulta para lograr esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta