Linq 如何有效地创建父子对?
给定这样的表结构,其中TOP、MID和BOT暴露在DbContext中:Linq 如何有效地创建父子对?,linq,entity-framework-6,Linq,Entity Framework 6,给定这样的表结构,其中TOP、MID和BOT暴露在DbContext中: Top { long TopId; IList<Mid> Mids; ... } Mid { long MidId; long TopId; IList<Bot> Bots; ...} Bot { long BotId, long MidId; DataTime Timestamp; string Data; ...} 简单地写下: var results = _db.Mids.Select(m
Top { long TopId; IList<Mid> Mids; ... }
Mid { long MidId; long TopId; IList<Bot> Bots; ...}
Bot { long BotId, long MidId; DataTime Timestamp; string Data; ...}
简单地写下:
var results = _db.Mids.Select(m => new
{
Mid = m,
Bot = m.Bots.OrderBy(b => b.Timestamp).FirstOrDefault()
});
您可以看到使用
results.ToString()生成的SQL查询。
您的代码看起来是正确的。你说更好是什么意思?嗯,我有数百种中级商品。我不想运行数百个查询。我只想问一个问题。我的印象是,每次引用\u db
时,我都会得到一个新的查询。您的代码只提供一个SQL查询。
var results = _db.Mids.Select(m => new
{
Mid = m,
Bot = m.Bots.OrderBy(b => b.Timestamp).FirstOrDefault()
});