stored framework first code await async c# linq async-await entity-framework-6 ienumerable

c# - first - using in entity framework



Expresión LINQ ToListAsync con un DbSet (1)

He codificado una aplicación de Internet C # MVC5 y tengo una pregunta sobre el uso de la expresión .ToListAsync LINQ.

Aquí está mi código que funciona en un resultado de acción de índice:

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);

Quiero crear una función de servicio para el código anterior. Esto es lo que he codificado:

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; }

Estoy teniendo el siguiente error:

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?)

El mismo código exacto funciona bien en el resultado de la acción Índice, pero no en un método de servicio. ¿Por qué es esto y cómo puedo hacer que esto funcione?

Gracias por adelantado


Como se indicó en los comentarios, agregue el using System.Data.Entity (en el paquete Entity Framework) para obtener QueryableExtensions .

Para .NET Core, estos métodos están bajo Microsoft.EntityFrameworkCore