мне нужно, чтобы получить коллекциюНаполнение класс DTO с LINQ
public class TemperatureModel
{
public string SensorType { get; set; }
public double RoomTemperature { get; set; }
public DateTime Created { get; set; }
}
для последней комнатной температуры для каждого датчика температуры, представленной в базе данных.
У меня есть запрос Linq, который извлекает последнюю температуру в помещении, записанную в базу данных для каждого датчика температуры.
var latestTemperatureQuery =
from temperature in db.RoomTemperature
join sensor in db.Sensor on temperature.SensorId equals sensor.Id
group temperature by temperature.SensorId into groupedRoomTemperature
select groupedRoomTemperature.OrderByDescending(t => t.Created)
.FirstOrDefault();
Я изо всех сил, чтобы изменить запрос выше для заполнения класс TemperatureModel DTO/POCO. Очевидно, я должен выполнить РЕГИСТРИРУЙТЕСЬ операцию, чтобы получить соответствующую SensorType от соответствующей таблице базы данных, а затем сделать что-то вроде
select new TemperatureModel
{
SensorType = // Selected SensorType value.
RoomTemperature = // Selected RoomTemperature value.
Created = // Selected Created value.
}
пока еще только выбрать последний температуры записывается в базу данных для каждого датчика температуры. Любые идеи о том, как изменить этот запрос, чтобы заполнить мой класс DTO/POCO?
Вы можете сделать проецирование в выбранной части запроса и исключить let. – TGnat
Хорошо, но как же вы затем убедитесь, что вы по-прежнему выбираете только последние записи? Как вы удаляете let и все еще делаете groupedTemperatureModel.OrderByDescending (t => t.Created) .FirstOrDefault(); – user65439