LINQ ToListAsync表达式与DbSet

本文关键字:DbSet 表达式 ToListAsync LINQ | 更新日期: 2023-09-27 18:17:04

我已经编写了一个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操作结果中工作得很好,但在服务方法中却不行。为什么会这样,我怎样才能让它工作?

Thanks in advance

LINQ ToListAsync表达式与DbSet

如评论所述,添加using System.Data.Entity(在实体框架包下)以获得QueryableExtensions

对于。net Core,这些方法位于Microsoft.EntityFrameworkCore