2013-10-09 328 views
-1

EMPLOYEE表 主鍵:僱員 enter image description hereLinqtoSql查詢在這種情況下

機類型表 主鍵:MachineTypeID enter image description here

機表:
主鍵:機號
外鍵:MachineTypeID
外鍵:僱員

以上,現在我想在機臺上查詢,並顯示以下結果

enter image description here

數據庫結構。 enter image description here
我想知道如何編寫LinqtoSql查詢來實現上面的表..是連接工作在這裏。請幫助我。

+1

迄今爲止的努力? –

+0

@SonerGönül陷入邏輯。 – james

+1

@james邏輯在原生'sql查詢'中是相同的。順便說一句,你聽說過'導航屬性'嗎?它將部分替換傳統SQL查詢中的「Join」操作。 –

回答

1

如果您DB/Object Context命名上下文,如果你還沒有在實體導航(如景景說你的問題如下圖),就可以形成一個多連接查詢:

var result = 
from m in context.Machine 
join mt in context.MachineType on m.MachineTypeID equals mt.MachineTypeID 
join e in context.Employee on m.EmployeeID equals e.EmployeeId 
select new { m.MachineID, mt.Type, e.EmployeeName, m.Price, m.Male, m.Year }; 
1

喜歡的東西下面將讓你開始:

這使用navigation properties而不是joins

var result = context.Machines.Where(x => x.EmployeeID == 3) 
      .Select(v => new 
      { 
       v.MachineID, // from Machines table 
       v.MachineTypes.MachineType, // from MachineTypes table 
       v.Employees.EmployeeName, // from Employees table 
       v.Price, // from Machines table 
       v.Make, // from Machines table 
       v.Year // from Machines table 
      }); 
1
var result = Machine 
.Join 
(
    MachineType, 
    x=>x.MachineTypeID, 
    x.MachineTypeID, 
    (m,mt)=>new 
    { 
     m.MachineID, 
     m.EmployeeID, 
     m.Price, 
     m.Make, 
     m.Year, 
     mt.Type 
    } 
) 
.Join 
(
    Employee, 
    x=>x.EmployeeID, 
    x=>x.EmployeeID, 
    (m,e)=>new 
    { 
     m.MachineID, 
     MachineType = m.Type, 
     Employee = m.EmployeeName, 
     m.Price, 
     m.Make, 
     m.Year 
    } 
);