EFcore 和 sqlite 连接导致“需要 SQL APPLY 操作,sqlite 不支持”

问题描述 投票:0回答:1

我尝试使用以下查询,但结果出现错误消息“翻译此查询需要 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 万条记录)。

有什么办法可以做到这一点吗?

c# sqlite entity-framework-core
1个回答
0
投票

这里不需要

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();
© www.soinside.com 2019 - 2024. All rights reserved.