下面指定的查询在编译时显示错误。它说名称wfmilestoneprojectrel不在equals右侧的作用域中。考虑交换equals两端的表达式。我该如何解决这个问题?
请帮帮我。
var test =
(from wfmilestonedefinition in _context.WF_MILESTONE_DEFINITION
join wfmilestoneprojectrel in _context.WF_MILESTONE_PROJECT_REL
on wfmilestonedefinition.MILESTONE_ID equals wfmilestoneprojectrel.MILESTONE_ID
join workflowrecord in _context.WORKFLOW_RECORD
on wfmilestoneprojectrel.PROJECT_ID equals workflowrecord.PROJECT_ID
join workflowmilestone in _context.WORKFLOW_MILESTONE
on
new
{
wfmilestoneprojectrel.MILESTONE_PROJECT_REL_ID,
workflowrecord.WF_ID
} equals
new
{
MILESTONE_PROJECT_REL_ID = wfmilestoneprojectrel.MILESTONE_PROJECT_REL_ID,
workflowmilestone.WF_ID
}
select workflowmilestone).ToList();下面给出了运行良好的相关Sql查询: SELECT dbo.WF_MILESTONE_DEFINITION.MILESTONE_ID,dbo.WF_MILESTONE_DEFINITION.MILESTONE_NAME,dbo.WF_MILESTONE_PROJECT_REL.PROJECT_ID,dbo.WORKFLOW_RECORD.WF_ID,dbo.WORKFLOW_MILESTONE.MILESTONE_E_DATE FROM dbo.WF_MILESTONE_DEFINITION INNER JOIN dbo.WF_MILESTONE_PROJECT_REL ON dbo.WF_MILESTONE_DEFINITION.MILESTONE_ID = dbo.WF_MILESTONE_PROJECT_REL.MILESTONE_ID INNER JOIN dbo.WORKFLOW_RECORD ON dbo.WF_MILESTONE_PROJECT_REL.PROJECT_ID = dbo.WORKFLOW_RECORD.PROJECT_ID INNER JOINdbo.WF_MILESTONE_PROJECT_REL.MILESTONE_PROJECT_REL_ID = dbo.WF_MILESTONE_PROJECT_REL.MILESTONE_PROJECT_REL_ID和dbo.WORKFLOW_RECORD.WF_ID = dbo.WORKFLOW_MILESTONE.WF_ID上的dbo.WORKFLOW_MILESTONE
发布于 2013-07-06 17:30:51
看看将在幕后调用的Join方法的定义:
Join<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter>,
IEnumerable<TInner>,
Expression<Func<TOuter, TKey>>,
Expression<Func<TInner, TKey>>,
Expression<Func<TOuter, TInner, TResult>>)之所以会出现此错误,是因为在第二个join子句中变量wfmilestoneprojectrel不可用,因为向该委托传递了变量workflowmilestone (TInner):
new
{
//here is no varialbe with name wfmilestoneprojectrel
MILESTONE_PROJECT_REL_ID = wfmilestoneprojectrel.MILESTONE_PROJECT_REL_ID,
workflowmilestone.WF_ID
}为什么不直接写:
join workflowmilestone in _context.WORKFLOW_MILESTONE
on workflowrecord.WF_ID equals workflowmilestone.WF_ID也许我误解了什么..。
https://stackoverflow.com/questions/17501382
复制相似问题