1
我需要檢索的填充一個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類。我顯然必須執行JOIN操作以獲取從應用的數據庫表中相應的SensorType然後還要做一些像
select new TemperatureModel
{
SensorType = // Selected SensorType value.
RoomTemperature = // Selected RoomTemperature value.
Created = // Selected Created value.
}
,同時仍然只選擇寫入到數據庫中每一個溫度傳感器的最後溫度。有關如何修改此查詢以填充我的DTO/POCO類的任何想法?
您可以在查詢的select部分中執行投影並消除let。 – TGnat
好的,但你如何確保你仍然只選擇最新的記錄?你如何消除讓,並仍然做一個grouppedTemperatureModel.OrderByDescending(t => t.Created) .FirstOrDefault(); – user65439