如何在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
答案 0 :(得分:0)
所以你有两个班级员工和资格。员工与资格认证之间存在一对多的关系
如果您按照default entity framework one-to-many configuration进行操作,则会有
等课程select * from myTable where blobCol like '%example%'
这是实体框架需要知道的所有配置一对多关系。如果您有不同的属性名称,您将拥有属性或流畅的API,以通知Entity Framework其功能。
现在回到您的查询:您想要所有男性员工的姓名以及他的资格的名称和描述
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;}
}
实体框架将为此创建正确的连接。