我有两个从数据库到对象的结果集,当我内部连接它们时,它返回交叉连接。以下是我的代码:返回交叉连接而不是内部连接
var nw = new NorthwindEntities();
var employee1 = (from emp in nw.Employees
join ord in nw.Orders on emp.EmployeeID equals ord.EmployeeID
where emp.EmployeeID == 5
select new
{
empID = emp.EmployeeID,
empName = emp.FirstName,
ordDate = ord.OrderDate
}).ToList();
var employee2 = (from emp in nw.Employees
join ord in nw.Orders on emp.EmployeeID equals ord.EmployeeID
where emp.EmployeeID == 5
select new
{
empID = emp.EmployeeID,
empName = emp.FirstName,
shpAddress = ord.ShipAddress
}).ToList();
var employee = from e1 in employee1
join e2 in employee2 on new { e1.empID } equals new { e2.empID }
select new
{
empID = e1.empID,
empName = e1.empName,
ordDate = e1.ordDate,
orAdd = e2.shpAddress
};
gvAll.DataSource = employee.ToList();
现在,当我加入employee1和和Employee2进员工,我得到那些数据集的交叉连接。任何帮助将不胜感激。
我的主要目标是让数据库返回的数据暂时存储在某个地方,这样我可以稍后使用从数据库检索的其他数据来处理它。
employee1和employee2对雇员id(5)使用相同的查询,但employee1具有empID,empName和OrderDate,其中employee2具有empID,empName和shipAddress。现在我需要员工中的employee1和employee2中的empID,empName,OrderDate和ShipAddress。 empID在两者中都很常见,但我正在交叉连接。谢谢。
显然会给交叉连接,因为雇员1和雇员2的所有记录的empId相同 – ethicallogics