【发布时间】:2016-07-03 18:15:33
【问题描述】:
我正在使用带有实体框架的 ASP.NET MVC。 我有一个名为“AllUserData”的实体。 我有第二个实体,叫做“流派”。表格中的每一行都是一个流派。
这两个实体具有一对多的关系。所以在“AllUserData”类的类定义中,我有 公共虚拟 ICollection PreferredGenres { 获取;放; }
我能够成功阅读每个用户喜欢的流派
AllUserData aud = db.AllUserData.Single(b => b.UserId == currentUserId);
var chosengenres = aud.PreferredGenres.ToList()
但是我不能使用
AllUserData aud = db.AllUserData.Single(b => b.UserId == currentUserId);
var chosengenres = await aud.PreferredGenres.ToListAsync()
Visual Studio 说“ICollection 不包含 'ToListAsync' 的定义,并且最佳扩展方法重载 'QueryableExtensions.ToListAsync(IQueryable)' 需要 'IQueryable' 类型的接收器。
为什么会这样?两者之间的唯一区别是,在一种情况下我使用了 ToList(),而在另一种情况下我使用了 ToListAsync()。
异步方法不能与导航属性一起使用吗?在现实生活中的应用程序中,存在许多不同实体之间存在关系的情况;使用这些关系访问属性时可以不使用异步方法吗?有没有办法解决这个问题?如果可能,我宁愿异步做事。
【问题讨论】:
标签: asp.net-mvc entity-framework