2010-04-02 86 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,因此该语句失败。

你应该重新访问你的类,看看正确的连接选项是什么。如果您确定该字段应位于表格中,则可能需要重新生成模式。