我想使用Entity Framwork执行自定义选择,但做得不好,您是否可以帮助我使用Entity Framework来确定此SQL选择
SELECT DISTINCT
Departments.Dept_ID, Departments.Name_Ar 'dept',
Request_Status.Name_Ar 'Status',
COUNT(Job_Requests.Status_ID) 'StatusCount'
FROM
dbo.Job_Requests
INNER JOIN
dbo.Jobs ON dbo.Job_Requests.Job_ID = dbo.Jobs.Job_ID
INNER JOIN
dbo.Departments ON dbo.Jobs.Dept_ID = dbo.Departments.Dept_ID
INNER JOIN
dbo.Job_Announcements ON dbo.Job_Announcements.JobAnnouncement_ID = dbo.Jobs.JobAnnouncement_ID
INNER JOIN
dbo.Request_Status ON dbo.Job_Requests.Status_ID = dbo.Request_Status.Status_ID
WHERE
[Job_Requests].[Is_Active] = 1
AND Job_Announcements.JobAnnouncement_ID = 14
答案 0 :(得分:2)
基于上述查询,我已经准备好一些示例。
首先,您需要创建两个用于检索数据的类
DepartmentModel
用于选择特定数据DepartmentStatus
,了解您实际想要的内容。模型类
public class DepartmentModel
{
public int Dept_ID {get;set;}
public string dept {get;set;}
public string Status {get;set;}
public int Status_ID {get;set;}
}
public class DepartmentStatus
{
public int Dept_ID {get;set;}
public string dept {get;set;}
public string Status {get;set;}
public int StatusCount {get;set;}
}
实体框架查询
var CustomeSelect = from Job_Requests in _entityFrameworkContext.Job_Requests
JOIN Jobs in _entityFrameworkContext.Jobs ON Job_Requests.Job_ID = Jobs.Job_ID
JOIN Departments in _entityFrameworkContext.Departments ON Jobs.Dept_ID = Departments.Dept_ID
JOIN Job_Announcements in _entityFrameworkContext.Job_Announcements ON Job_Announcements.JobAnnouncement_ID
= Jobs.JobAnnouncement_ID
JOIN Request_Status in _entityFrameworkContext.Request_Status ON Job_Requests.Status_ID = Request_Status.Status_ID
select new DepartmentModel
{
Dept_ID = Departments.Dept_ID,
dept=Departments.Name_Ar,
Status = Request_Status.Name_Ar,
Status_ID = Job_Requests.Status_ID
}
where Job_Requests.Is_Active = true && Job_Announcements.JobAnnouncement_ID = 14
var oResult = CustomeSelect.GroupBy(s => new
{
s.Dept_ID,
s.dept,
s.Status,
})
.Select(ds => new DepartmentStatus()
{
Dept_ID = ds.Key.Dept_ID,
dept = ds.Key.dept,
Status = ds.Key.dept,
StatusCount = ds.Count(),
});