我收到了这个错误......
LINQ to Entities无法识别方法'Int64 GetPostsCountQuery(Int64)'方法,并且此方法无法转换为商店表达式。
这里是我的代码:
private Blog GetBlogDetailsByUserId(long userId)
{
return (from gs in _entities.wu_Blog_General_Settings
//join p in _entities.wu_Blog_Post on gs.User_Id equals p.User_Id
let pCount = GetPostsCountQuery(userId)
let lastPublish = GetPostsLastPublishedQuery(userId, pCount)
where gs.User_Id == userId && !gs.Is_Deleted
select new Blog
{
BlogOwnerUserId = userId,
BlogTitle = gs.Blog_Title,
BlogDescription = gs.Blog_Description,
PostsCount = pCount,
LastPublishedDate = lastPublish
}).SingleOrDefault();
}
#endregion
#region Get Posts Count Query
private long GetPostsCountQuery(long userId)
{
return (from p in _entities.wu_Blog_Post
where p.User_Id == userId && p.Post_State != (int)PostState.Removed &&
!p.Is_Deleted
select p).Count();
}
#endregion
答案 0 :(得分:1)
您不能在Linq-to-entities中使用.NET方法,因为EF无法将它们转换为SQL(提供程序不会探索其内容)。
linq-to-entities中允许的唯一.NET方法是:
IQueryable
上运行并返回IQueryable