1
      from mstr in m_db.master_records
      join loctab in
      (
          from bp in m_db.basepay_records
          select new { empID = bp.p_empid, loc = bp.p_loc }
      )
      .Union
      (
          from ass in m_db.emp_assignments
          select new { ass.a_emp, ass.a_loc }
      )
       on mstr.prem_emp = loctab.empID

在最后一行出现错误,说 loctab 不在范围内。我已经玩了一点,但我看不出有什么不同的方法。

4

2 回答 2

2

你的最后一行应该是这样的。

on loctab.empID equals mstr.prem_emp
select //... perform your select on the unioned tables.
于 2013-05-29T18:30:43.833 回答
1

我不明白“不在范围内”是什么意思,但有一点不对。两种匿名类型都应该有完全相同的定义,否则你不能联合:

你有:

select new { empID = bp.p_empid, loc = bp.p_loc }

然后也使用:

select new { empID = ass.a_emp, loc = ass.a_loc }

也许异常消息是一种伪装的方式来说明这一点。

于 2013-05-29T21:09:16.123 回答