无法翻译成商店表达错误

时间:2011-07-29 08:40:47

标签: entity-framework linq-to-entities

我收到了这个错误......

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

1 个答案:

答案 0 :(得分:1)

您不能在Linq-to-entities中使用.NET方法,因为EF无法将它们转换为SQL(提供程序不会探索其内容)。

linq-to-entities中允许的唯一.NET方法是: