我正在尝试使用扩展方法.ToListAsync()
但由于某种原因,此扩展方法对我不可用。
我的设置如下:
- Web 项目 (.Net 4.7) 在这里我确实包括了
using System.Data.Entity;
- DataAcess Project (.Net 4.7) 在这里我插
Entity Frame Work v6.2
我的 Web 项目引用了我的 DataAccess 项目。
我不确定我哪里出错了。有人可以建议吗?
谢谢!
ToListAsync
方法是QueryableExtensions
类的一部分,该类位于System.Data.Entity
命名空间中,也是EntityFramework.dll
库的一部分。这意味着您需要导入命名空间(即using System.Data.Entity;
)以及参考EntityFramework.dll
。
请注意,在经典的 .Net Framework 项目中,引用不是可传递的。换句话说,如果要使用库中的类,则必须在每个项目中引用它。不过,这在.Net Core中已经发生了变化。
虽然.ToListAsync()
方法通过引用 Entity.dll Framework 和using System.Data.Entity;
来实现,但它仅适用于实现IQueryable
接口的类型。
使用它的示例:
private async Task<List<Book>> GetAllBooksAsync() {
var books = new List<Book>();
var query = from item in books select item;
return await query.AsQueryable().ToListAsync();
}
请注意,如果看不到ToListAsync()
方法,则可能是类中缺少using System.Data.Entity;
。