我有兩個從數據庫到對象的結果集,當我內部連接它們時,它返回交叉連接。以下是我的代碼:返回交叉連接而不是內部連接
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