J'ai codé une application Internet C # MVC5 et j'ai une question sur l'utilisation de .ToListAsync
Expression LINQ.
Voici mon code qui fonctionne dans un résultat d'action Index:
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);
Je souhaite créer une fonction de service pour le code ci-dessus. Voici ce que j'ai codé:
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;
}
Je reçois l'erreur suivante:
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?)
Le même code fonctionne correctement dans le résultat de l'action Index, mais pas dans une méthode de service. Pourquoi est-ce et comment puis-je faire fonctionner cela?
Merci d'avance
Comme indiqué dans les commentaires, ajoutez using System.Data.Entity
(sous le package Entity Framework) pour obtenir le QueryableExtensions
.
Pour .NET Core, ces méthodes sont sous Microsoft.EntityFrameworkCore