Innanzitutto, puoi eliminare in sicurezza la prima condizione if (L != null) che non serve assolutamente a nulla, in quanto il valore sarà sempre diverso da null.
In secondo luogo, osservando la presenza di db.DREAM_Log.AsNoTracking(), immagino che si tratti di una espressione LINQ applicata ad Entity Framework, quindi occhio perché quando esegui prima Count() e poi First(), in realtà stai eseguendo la query due volte (inutilmente), la prima per calcolare il conteggio e la seconda per recuperare di nuovo i record prendendo il primo.
Puoi sintetizzare il tutto con una istruzione sola che vada a recuperarti direttamente il valore che stai cercando dall'eventuale unico record - se esiste - che soddisfa la tua condizione dopo aver applicato l'ordinamento; in breve qualcosa del genere:
Ovviamente non ho verificato se il codice compila ed è corretto sintatticamente perché non ho a disposizione i tipi con cui stai effettivamente lavorando, ma dovrebbe rendere l'idea.codice:var usrDateMod = db.DREAM_Log.AsNoTracking() .OrderByDescending(ee => ee.Usr_DateMod) .Where(ee => ee.IdRecord == Esame.IDEsame) .Select(ee => ee.Usr_DateMod) .FirstOrDefault(); var lastUpdate = usrDateMod != null ? usrDateMod.Value.ToShortDateString() : string.Empty;
Ciao!![]()