我有一个包含 4 个字段的数据库,看起来像这样:
ID DeviceId Location Date
1 A ... 2
2 A ... 1
3 B ... 2
对于每个DeviceId
我想要从最高日期的记录中获得的位置。我可以得到 distinctDeviceId
是这样的:
// get all locations
var locations = Session.Query<Location>().ToList();
//Get the latest used unique deviceId's
var distinctDeviceIdsByDate = (
from loc in locations
orderby loc.DeviceId, loc.Date descending
select loc.DeviceId).Distinct().ToList();
然后我会使用 join 来获取想要的行,但这不会有任何好处,因为除了DeviceId
's 之外我无法获得任何东西,因此无法确定要选择哪些行。如果我尝试选择以下内容:
select loc
我只能得到所有列的唯一组合的行。我确信有一个简单的解决方案,但恐怕我现在无法弄清楚。