Linq左关联查询只取最新的一条数据
```
var deviceState = from di in _deviceInfoManager.FindList()
join ds in _deviceStateManager.FindList(0, a => a.OccurTime >= System.DateTime.Now.AddMinutes(-10), a => a.Time, false) on new { tokenID = di.TokenStationId, deviceNo = di.DeviceNo } equals new { tokenID = ds.TokenStationId, deviceNo = ds.DeviceNo } into dids
from ds in dids.DefaultIfEmpty()
select new B04DeviceState
{
DeviceNo=di.DeviceNo,
DeviceState=ds!=null?ds.DeviceState:(short)0
};
return deviceState;
```
背景:di设备信息表,存储设备静态信息,ds设备状态表,存储设备状态信息,每1分钟插入一条记录。
问题:用设备信息表左联设备状态表最近10分钟的记录,存在网络断开,如果左联为空直接给状态等于0的,如果不为空,那么状态就等于最新一条记录的状态。怎么处理取最新的一条记录状态。
表信息:
设备信息表
DeviceNo DeviceName
1 A设备
2 B设备
状态表
DeviceNo state time
1 3 10:00
1 2 10:01
1 1 10:02
希望得到的结果集为
DeviceNo state
1 1
2 0