给定一个这样的表结构,在DbContext中公开Tops,Mids和Bots:
Top { long TopId; IList<Mid> Mids; ... }
Mid { long MidId; long TopId; IList<Bot> Bots; ...}
Bot { long BotId, long MidId; DataTime Timestamp; string Data; ...}
如何编写一个有效的查询来为整个Mid表提供每个Mid的第一个Bot项目。 “first”是指具有最小时间戳的那个。我更喜欢这样的事情:
var results = _db.Mids.Select(m => new {Mid = m, Bot =
_db.Bots.Where(b => b.MidId = m.Id)
.OrderBy(b => b.Timestamp).FirstOrDefault()});
答案 0 :(得分:1)
简单地写一下:
var results = _db.Mids.Select(m => new
{
Mid = m,
Bot = m.Bots.OrderBy(b => b.Timestamp).FirstOrDefault()
});
您可以看到使用results.ToString()