[英]subquery in LINQ query expression
下面是我的SQL查詢:
select e.id, m.id, e.Name, (select 1 where e.Id Is Null) as NotExists
from Employee e
INNER JOIN Department d
ON e.Id = d.Id
LEFT JOIN Manager m
ON e.Id = m.Id
order by e.Name
我試圖像上面這樣將上面的查詢寫到LINQ中:
var result = from e in employeeRep
join d in departmentRep
on e.Id equals d.Id
join m in manager
on e.Id = m.Id
order by e.Name
select new
{
Name = e.Name,
EmpId = e.Id,
ManagerId = m.Id,
DepartmentId = d.Id,
DeparmentName = d.Name,
NotExists = // here I want to write this query (select 1 where e.Id Is Null) as NotExists
} ;
誰能告訴我如何實現這一目標
謝謝
如果Id nullable
為nullable
則可以執行以下操作:
select new
{
Name = e.Name,
EmpId = e.Id,
ManagerId = m.Id,
DepartmentId = d.Id,
DeparmentName = d.Name,
NotExists = e.Id == null ? 1 : 0
}
您可以使用let
關鍵字。 它允許您創建一個子查詢,為其分配一個名稱,然后在以后的代碼中使用它們。 雖然,它在許多復雜的子查詢中更有用,在這里也可以使用。
var result = from e in employeeRep
join d in departmentRep
on e.Id equals d.Id
join m in manager
on e.Id = m.Id
order by e.Name
let mySub = // write your query here.
select new
{
Name = e.Name,
EmpId = e.Id,
ManagerId = m.Id,
DepartmentId = d.Id,
DeparmentName = d.Name,
NotExists = mySub
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.