我该如何解决这个问题?
'System.NotSupportedException'类型的异常在EntityFramework.SqlServer.dll中发生,但未在用户代码中处理。
额外的信息:LINQ to Entities不认识方法'System.Threading.Tasks.Task`1[Jahan.Blog.Model.Identity.User] FindByIdAsync(Int32)',该方法不能被转换为存储表达式。
public virtual User User { get; set; }
private IQueryable<ArticleGridViewModel> Query()
{
ArticleRepository repository = new ArticleRepository();
IQueryable<ArticleGridViewModel> query = repository.FindAll().Select(article => new ArticleGridViewModel
{
Tags = article.ArticleTags.Where(c => c.ArticleId == article.Id).Select(b => b.Tag).Distinct().ToList(),
NumberOfComments = article.Comments.Count(c => c.ArticleId == article.Id),
AttachmentFiles =article.AttachmentFiles.Where(a => a.ArticleId == article.Id).Distinct().ToList(),
CreatedDate = article.CreatedDate,
IsActive = article.IsActive,
IsActiveNewComment = article.IsActiveNewComment,
LikeCounter = article.LikeCounter,
ModifiedDate = article.ModifiedDate,
RateCounter = article.RateCounter,
Title = article.Title,
UserId = article.UserId,
Comments = Comments.Where(c => c.ArticleId == article.Id).ToList(),
User = AppUserStore.Instance.FindByIdAsync(article.Id).Result, // The error happened because of this line of code.
});
return query;
}
public virtual IQueryable<ArticleGridViewModel> QueryByCriteria(Expression<Func<ArticleGridViewModel, bool>> predicate = null, params Expression<Func<ArticleGridViewModel, object>>[] includeProperties)
{
IQueryable<ArticleGridViewModel> items = Query();
if (includeProperties != null)
{
foreach (var includeProperty in includeProperties)
{
items = items.Include(includeProperty);
}
}
if (predicate != null)
return items.Where(predicate);
return items;
}
public virtual IEnumerable<ArticleGridViewModel> FindAll(Expression<Func<ArticleGridViewModel, bool>> predicate = null, params Expression<Func<ArticleGridViewModel, object>>[] includeProperties)
{
List<ArticleGridViewModel> result = QueryByCriteria(predicate, includeProperties).ToList();
return result;
}