c# - 带有 DbSet 的 LINQ ToListAsync 表达式

标签 c# linq async-await entity-framework-6 ienumerable

我编写了一个 C# MVC5 Internet 应用程序,并且对使用 .ToListAsync LINQ 表达式有疑问。

这是我在索引操作结果中运行的代码:

IEnumerable<IMapLocationItem> mapLocationImageGalleries = await db.mapLocationImageGalleries.Where(m => m.userName.Equals(userName)).ToListAsync();
IEnumerable<IMapLocationItem> mapLocationVideoGalleries = await db.mapLocationVideoGalleries.Where(m => m.userName.Equals(userName)).ToListAsync();
IEnumerable<IMapLocationItem> mapLocationItemsCombined = mapLocationImageGalleries.Concat(mapLocationVideoGalleries);

我想为上面的代码创建一个服务函数。这是我编写的代码:

public async Task<IEnumerable<IMapLocationItem>> GetAllMapLocationItemsFromUserName(string userName)
{
    IEnumerable<IMapLocationItem> mapLocationImageGalleries = await db.mapLocationImageGalleries.Where(m => m.userName.Equals(userName)).ToListAsync();
    IEnumerable<IMapLocationItem> mapLocationVideoGalleries = await db.mapLocationVideoGalleries.Where(m => m.userName.Equals(userName)).ToListAsync();
    IEnumerable<IMapLocationItem> mapLocationItemsCombined = mapLocationImageGalleries.Concat(mapLocationVideoGalleries);
    return mapLocationItemsCombined;
}

我收到以下错误:

Error   17  'System.Linq.IQueryable<CanFindLocation.Models.MapLocationItems.MapLocationImageGallery>' does not contain a definition for 'ToListAsync' and no extension method 'ToListAsync' accepting a first argument of type 'System.Linq.IQueryable<CanFindLocation.Models.MapLocationItems.MapLocationImageGallery>' could be found (are you missing a using directive or an assembly reference?)

完全相同的代码在 Index 操作结果中工作正常,但在服务方法中却不行。为什么会这样,我怎样才能让它发挥作用?

提前致谢

最佳答案

如评论中所述,添加 using System.Data.Entity(在 Entity Framework 包下)以获取 QueryableExtensions

对于 .NET Core,这些方法在 Microsoft.EntityFrameworkCore

关于c# - 带有 DbSet 的 LINQ ToListAsync 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25174004/

相关文章:

c# - 从异步方法更新进度条

c# - 如何生成Excel epplus C#新表,每张表内容不同

ios - Swift async 让任务在未等待时抛出取消异常

c# - 无法使用 ActionLink 打开模态弹出窗口

c# - LINQ 如何删除集合末尾的空元素

vb.net - 在特定值 vb.net 上使用 linq 选择列表中的计数

c# - 如何使用 LINQ 选择内部 XML 节点的集合?

javascript - 使用异步和等待未处理的拒绝(InvalidTokenError)

c# - 一个变量,多个值?

c# - 对物理路径的读取权限