На основе приведенного выше запроса я подготовлен для нескольких примеров.
Сначала вам нужно создать два класса для извлечения данных
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;}
}
Запрос Entity Framework
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(),
});