[英]Table Sub Query in LINQ
如何在LINQ中編寫此查詢?
我要對Employee表應用子查詢,因為我只需要男雇員的所有資格。
Select emp.Name, qual.Name, qual.Description
from Qualification qual
INNER JOIN ( Select emp.QualId from Employee emp where emp.Gender='Male') emp
ON qual.Id = emp.QualId
因此,您有雇員和資格兩類。 員工與資格之間存在一對多關系
如果您遵循默認的實體框架一對多配置,您將擁有類似
class Qualification
{
public int Id {get; set;}
public string Name {get; set;}
public string Description {get; set;}
// a Qualification has zero or more Employees
public virtual ICollection<Employee> Employees {get; set;}
}
class Employee
{
public int Id {get; set;}
public string Name {get; set;}
public string Gender {get; set;}
// Every Employee has exactly one Qualification using foreign key
public int QualificationId {get; set;}
public virtual Qualification Qualification {get; set;}
}
這是實體框架配置一對多關系所需的全部知識。 如果您使用不同的屬性名稱,則將具有屬性或流利的API,以告知Entity Framework其功能。
現在回到您的查詢:您想要所有男性雇員的姓名以及其資格的名稱和說明
var result = dbContext.Employee
.Where(employee => employee.Gender == "Male")
.Select(employee => new
{
EmployeeName = employee.Name,
QualificationName = employee.Qualification.Name,
QualificationDescription = employee.Qualification.Description,
});
實體框架將為此創建正確的聯接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.