2013-02-01 37 views
2

我用它做工精細以前相同的查詢。然後,我決定用符合查詢不支持過​​載,所以我不得不作出一些修改代碼。「用於查詢操作‘去哪兒’

現在,當我嘗試執行代碼,我收到錯誤消息「用於查詢運算符的不支持的重載'Where'。 我從「approvalHelper.GetWhereClauseForApprovalSimpleSearch();」生成的where子句已經過測試並且正常工作。

// Complied Query Class 
public static class CompliedQuery 
{ 

    public static Func<GDataContext, Expression<Func<View_ApprovalSimple, bool>>, IQueryable<View_ApprovalSimple>> getApprovalSimple = 


    CompiledQuery.Compile<GDataContext, Expression<Func<View_ApprovalSimple, bool>>, IQueryable<View_ApprovalSimple>>(
      (db, whereclause) => (from results in db.View_ApprovalSimples.AsExpandable().Where(whereclause) 
           select results));   
} 

// this is what is passed into the where clause; Body = {(vas.siteId = 1)} 


//the Calling code 
public static List<View_ApprovalSimple> GetApprovalSimple(ApprovalsSearchHelperClass _approvalHelper) 
{ 
    Expression<Func<View_ApprovalSimple, bool>> whrClause = approvalHelper.GetWhereClauseForApprovalSimpleSearch(); 

    //whrclause; Body = {(vas.siteId = 1)} 
    try 
    { 
     using (GDataContext db = new GDataContext()) 
     { 
      if (whrClause != null) 
      { 
       var varResults = CompliedQuery.getApprovalSimple(db, whrClause); 

       return varResults.ToList(); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     // code to handle error   
    } 
    finally 
    {   
    } 

    return null;  
} 

任何想法,我可能要實施什麼新的變化: 只是根據我的代碼所示

代碼不爲符合查詢部分工作?

在此先感謝。

回答

0

首先我對此有點懷疑,沒有選擇,所以我最終嘗試了它,它確實工作。 請點擊鏈接查看答案 Steve's Blog 偉大的工作史蒂夫。

0

檢查名稱空間(從CompliedQuery開始全部複製)到調用類。