EMPLOYEE表 主鍵:僱員 LinqtoSql查詢在這種情況下
機類型表 主鍵:MachineTypeID
機表:
主鍵:機號
外鍵:MachineTypeID
外鍵:僱員
數據庫結構。
我想知道如何編寫LinqtoSql查詢來實現上面的表..是連接工作在這裏。請幫助我。
EMPLOYEE表 主鍵:僱員 LinqtoSql查詢在這種情況下
機類型表 主鍵:MachineTypeID
機表:
主鍵:機號
外鍵:MachineTypeID
外鍵:僱員
數據庫結構。
我想知道如何編寫LinqtoSql查詢來實現上面的表..是連接工作在這裏。請幫助我。
如果您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 };
喜歡的東西下面將讓你開始:
這使用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
});
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
}
);
迄今爲止的努力? –
@SonerGönül陷入邏輯。 – james
@james邏輯在原生'sql查詢'中是相同的。順便說一句,你聽說過'導航屬性'嗎?它將部分替換傳統SQL查詢中的「Join」操作。 –