linq join查询
问题描述:
我想在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)
答
前场被添加到数据库中也许是所产生的LINQ架构。如果它是使用sqlmetal生成的,请尝试再次在数据库上运行sqlmetal。否则,只需使用设计器添加它。
答
根据您的错误消息,问题是h.ProjectId
。错误消息表明“Bid”类(CW1.SearchWebService.Bid
)不包含成员ProjectId
,因此该语句失败。
你应该重新访问你的类,看看正确的连接选项是什么。如果您确定该字段应位于表格中,则可能需要重新生成模式。
顺便说一句,为什么要在加入之前将项目和出价提取到内存中?最好让数据库执行连接。 (如果只是为了诊断这个问题,那很好。) – 2010-04-02 00:35:51