![](/img/trans.png)
[英]Resolve "InvalidOperationException: The LINQ expression [...] could not be translated" and keeping the ToListAsync()
[英]LINQ ToListAsync expression with a DbSet
我编写了一个C#MVC5 Internet应用程序,并对使用.ToListAsync
LINQ表达式有疑问。
这是我在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);
我想为上面的代码创建一个服务函数。 这是我编码的内容:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.