我尝试使用以下查询,但结果出现错误消息“翻译此查询需要 SQL APPLY 操作,SQLite 不支持该操作。”
return await (from c in _dbContext.Charter
join r in _dbContext.Roster on c.Id equals r.CharterId into rosters
select new CharterGridData
{
CharterName = c.Name,
Roster = rosters.ToList()
}).ToListAsync();
我尝试过做类似
Roster = _dbContext.Roster.Where(r => r.CharterId == c.Id)
之类的事情,但它根本无法加载(名册表有超过 200 万条记录)。
有什么办法可以做到这一点吗?
这里不需要
GroupJoin
。 EF Core 对该运算符的支持很差。
var query =
from c in _dbContext.Charter
select new CharterGridData
{
CharterName = c.Name,
Roster = _dbContext.Roster.Where(r => c.Id == r.CharterId).ToList()
};
var result = await query.ToListAsync();