Ok I found the solution, hope this helps someone in the future. I made use of the let keyword to keep track of the latest room temperatures that was written to the database. By doing this I could perform all my joins, select the results into my DTO/POCO class and then select only the latest by ordering by date and using .First(). I changed my linq query to
var latestTemperatureQuery =
from temperature in db.RoomTemperature
join sensor in db.Sensor on temperature.SensorId equals sensor.Id
join sensorType in db.SensorType on sensor.TypeId equals sensorType.Id
let temperatureModel = new TemperatureModel
{
SensorType = sensorType.Type,
RoomTemperature = temperature.Temperature,
Created = temperature.Created
}
group temperature by temperatureModel.SensorId into groupedTemperatureModel
select groupedTemperatureModel.OrderByDescending(t => t.Created)
.FirstOrDefault();