簡體   English   中英

自定義 select 實體框架

[英]Custom select Entity Framework

我想用實體框架執行一個自定義 select 並且不能讓它很好你能幫我用實體框架計算這個 SQL select

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

基於上述查詢,我准備了一些示例。

首先,您需要創建兩個類來檢索數據

  • DepartmentModel for select 具體數據
  • DepartmentStatus實際上是你想要的。

Model class

    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(),
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM