1

データベースからオブジェクトへの 2 つの結果セットがあり、それらを内部結合すると、クロス結合が返されます。以下は私のコードです:

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 を employee に結合すると、これらのデータ セットの相互結合が得られます。どんな助けでも大歓迎です。

この背後にある私の主な目標は、データベースから返されたデータを一時的にどこかに保存して、後でデータベースから取得した他のデータと連携できるようにすることです。

従業員 1 と従業員 2 は従業員 ID (5) に対して同じクエリを使用しますが、従業員 1 には empID、empName および OrderDate があり、従業員 2 には empID、empName および shipAddress があります。ここで、empID、empName、OrderDate、ShipAddress が employee1 から、employee2 が employee に必要です。empID は両方で共通ですが、クロス ジョインを取得しています。ありがとうございました。

4

2 に答える 2

1

またemployee1、列がemployee2必要OrderIdになり、両方のテーブルで同等の一意のキーを取得する必要がある両方の cos でそれらを結合します。

そしてあなたが書いたことから、それはどちらのテーブルでもユニークではないと思いますempID.cos同じものをもっと注文することができますempID

したがって、最初に両方で一意のキーが必要でありemployee1employee2それから参加できます。

于 2013-01-14T06:14:56.770 に答える