2010-04-02 88 views
1

我想在linq中做一個連接,但是由於某種原因我無法訪問表的主鍵。這是'h.ProjectId',似乎沒有被接受。 以下錯誤給出linq join查詢

CW1.SearchWebService.Bid does not contain a definition for 'ProjectId' and no extention method 'ProjectId' accepting a first argument of type 'CW1SearchWebService.Bid' 

代碼:

var allProjects = ctxt.Project.ToList() ; 
var allBids = ctxt.Bid.ToArray();// return all bids 

var projects = (from project in allProjects join h in allBids 
           on 
          project.ProjectId equals h.ProjectId) 
+1

順便說一句,爲什麼要在加入之前將項目和出價提取到內存中?最好讓數據庫執行連接。 (如果只是爲了診斷這個問題,那很好。) – 2010-04-02 00:35:51

回答

0

前場被添加到數據庫中也許是所產生的LINQ架構。如果它是使用sqlmetal生成的,請嘗試再次在數據庫上運行sqlmetal。否則,只需使用設計器添加它。

1

根據您的錯誤消息,問題是h.ProjectId。錯誤消息表明「Bid」類(CW1.SearchWebService.Bid)不包含成員ProjectId,因此該語句失敗。

你應該重新訪問你的類,看看正確的連接選項是什麼。如果您確定該字段應位於表格中,則可能需要重新生成模式。