2011-07-29 3 views
0

私はこのエラーを得た...エンティティへストア式のエラーに翻訳することはできません

LINQは方法「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

あなたがで.NETメソッドを使用することはできませんLINQのツーエンティティEFは、SQL(プロバイダがその内容を調査しない)にそれらを翻訳することはできませんので。

LINQツーエンティティに許可された唯一の.NETメソッドのいずれかです:

自動的
  • Mapped SQL functionsまたはカスタムSQL操作
  • Model defined functions
  • いくつかの拡張メソッドEFによってSQLに翻訳
  • +0

    ありがとうございます... – yogee