2014-02-06 31 views
1

我在下面的LINQ到實體查詢得到一個「DbComparisonExpression需要具有可比類型的參數」的錯誤沒有明顯的原因!我如何解決它?

DbComparisonExpression requires arguments with comparable type 

錯誤:

jobDetails.pdata = db.JobBoardUsers.Where(c => c.id.Equals(jbid)).Select(c => new JobBoardUserProfileModel() { ID = c.id, userid = c.userid, firstname = c.firstname, lastname = c.lastname, PostalCode = c.passcode, phone = c.phone, JobDescription = c.desiredjobtitle, resumetext = c.resumetext, savedresume = c.savedresume }).ToList(); 

隨着ID的例外(智力),其他所有欄目都是VARCHAR。在EF(模型瀏覽器)中,ID列顯示爲Int32,其餘爲String。此外,該表具有主鍵。

這裏是JobBoardUserProfileModel模式

public class JobBoardUserProfileModel 
{ 
    public int ID { get; set; } 
    public string userid { get; set; } 
    public string firstname { get; set; } 
    public string lastname { get; set; } 
    public string PostalCode { get; set; } 
    public string phone { get; set; } 
    public string JobDescription { get; set; } 
    public string savedresume { get; set; } 
    public string resumetext { get; set; } 
} 

好像一切都完美地對齊。爲什麼我得到這個錯誤?

+2

'jbid'的類型是什麼?爲什麼不使用'c.id == jbid'? – Habib

+1

謝謝哈比,你發現我的問題。我甚至沒有考慮過jbid作爲可能的問題,但肯定它是一個字符串,應該是對「userid」進行評估,而不是「id」! – Ryan

回答

-1

我會試着在你的LINQ的語句中使用類型化ToList():

jobDetails.pdata = db........ToList<JobBoardUserProfileModel>() 

如果沒有它可能返回一個類型化的列表對象。

相關問題