异步LINQ查询
我正在处理一个应该能够异步完成的LINQ查询,但它没有计算。在尝试修复此问题时,我发现此页面: 它声明我应该能够将AsAsAsyncEnumerable添加到我的LINQ以使其工作。但是,它甚至不编译 我有以下功能可以工作,但正在同步运行:异步LINQ查询,linq,asp.net-core,ef-core-3.0,Linq,Asp.net Core,Ef Core 3.0,我正在处理一个应该能够异步完成的LINQ查询,但它没有计算。在尝试修复此问题时,我发现此页面: 它声明我应该能够将AsAsAsyncEnumerable添加到我的LINQ以使其工作。但是,它甚至不编译 我有以下功能可以工作,但正在同步运行: AreaLookupTb = _context.AreaLookupTb .AsEnumerable() .GroupJoin(_context.LocationTb,
AreaLookupTb = _context.AreaLookupTb
.AsEnumerable()
.GroupJoin(_context.LocationTb, a => a.AreaId, b => b.AreaId, (a, b) => new GroupingStats { ID = a.AreaId, Name = a.Name, Description = a.Description, Count = b.Count() })
.OrderBy(n => n.Name)
.ToList();
您可能会认为我需要做的就是使其异步:
AreaLookupTb = await _context.AreaLookupTb
.AsAsyncEnumerable()
.GroupJoin(_context.LocationTb, a => a.AreaId, b => b.AreaId, (a, b) => new GroupingStats { ID = a.AreaId, Name = a.Name, Description = a.Description, Count = b.Count() })
.OrderBy(n => n.Name)
.ToListAsync();
唉,情况并非如此。VS2019给我的错误是:
错误CS1061“IAsyncEnumerable”不包含“GroupJoin”的定义,并且找不到接受“IAsyncEnumerable”类型的第一个参数的可访问扩展方法“GroupJoin”(是否缺少using指令或程序集引用?)
任何帮助都将不胜感激。您应该将所有
可枚举
转换为异步可枚举
:
AreaLookupTb = await _context.AreaLookupTb
.ToAsyncEnumerable()
.GroupJoin(_context.LocationTb.ToAsyncEnumerable(), a => a.AreaId, b => b.AreaId, (a, b) => new GroupingStats { ID = a.AreaId, Name = a.Name, Description = a.Description, Count = b.Count() })
.OrderBy(n => n.Name)
.ToListAsync();
您应该将所有
可枚举
转换为异步可枚举
:
AreaLookupTb = await _context.AreaLookupTb
.ToAsyncEnumerable()
.GroupJoin(_context.LocationTb.ToAsyncEnumerable(), a => a.AreaId, b => b.AreaId, (a, b) => new GroupingStats { ID = a.AreaId, Name = a.Name, Description = a.Description, Count = b.Count() })
.OrderBy(n => n.Name)
.ToListAsync();
它是
ToAsyncEnumerable()
notAsAsAsyncEnumerable()
。如果答案有用,请将其标记为已接受,否则请对其进行注释。它是ToAsyncEnumerable()
notAsAsAsyncEnumerable()
。如果答案有帮助,请将其标记为已接受,否则请对其进行评论。我尝试了几种不同的方法来更正此问题,但没有一种方法有效。当我将AsEnumerable更改为ToAsyncEnumerable时,VS告诉我它应该是AsEnumerable并且不会编译。如果我这样做,我就回到了前面提到的第1步。长话短说,这不起作用。链接到GitHub。我尝试了几种不同的方法来纠正这一点,但没有一种方法起作用。当我将AsEnumerable更改为ToAsyncEnumerable时,VS告诉我它应该是AsEnumerable并且不会编译。如果我这样做,我就回到了前面提到的第1步。长话短说这不起作用。链接到GitHub。