2011-06-09 279 views
0

我寫下面的代碼查詢在實體框架

var resumeedit=(from t in db.Resumes where t.User.UserID==theUserID && t.ResumeID==theResumeID select t).Select(t=> new EditResumes 
       { 
        Iswizard=t.isWizard, 
        Resumeid=t.ResumeID.ToString() 
       }).First(); 
      EditResumes ed = (EditResumes)resumeedit; 

和它給錯誤LINQ實體無法識別方法「System.String的ToString()」方法,和這種方法不能被翻譯成商店表達。

回答

0

像有消息稱,L2E不做.ToString()。因此,使用.AsEnumerable(),使其L2O:

var resumeedit= (from t in db.Resumes 
       where t.User.UserID==theUserID && t.ResumeID==theResumeID 
       select t) 
       .AsEnumerable() 
       .Select(t=> new EditResumes 
       { 
        Iswizard=t.isWizard, 
        Resumeid=t.ResumeID.ToString() 
       }).First(); 

該投應該是不必要的:

EditResumes ed = (EditResumes)resumeedit; 
1

此行

Resumeid=t.ResumeID.ToString() 

,當你把它

Resumeid=t.ResumeID 

會發生什麼?

或簡單的做:

select new { t.ResumeID, t.isWizard } 
+0

有了您的第一個建議,代碼將無法編譯。在第二行中,第二行中的劇組失敗。 – 2011-06-09 15:36:47