C# Web API INNER JOIN and RETURN Query value

前端 未结 3 1264
说谎
说谎 2021-01-27 02:29

EF Model Image References

I was planned to read data from database and then using INNER JOIN in C# WebApi contr

3条回答
  •  清酒与你
    2021-01-27 03:02

    This is the completed answer that I sorted out, via DTO concept thanks to @vikscool contribution

    namespace WebApiJoinData.Controllers
    {
        [RoutePrefix("Api")]
        public class JoinController : ApiController
        {
            DepartmentServicesEntities DSE = new DepartmentServicesEntities();
            [Route("Api")]
    
            [HttpGet]
            public object JoinStatement()
            {
                using (DSE)
                {
                    var result = (from e in DSE.employees
                                  join d in DSE.departments on e.department_id equals d.department_id
                                  join ws in DSE.workingshifts on e.shift_id equals ws.shift_id
                                  select new
                                  {
                                      FirstName = e.FirstName,
                                      LastName = e.LastName,
                                      Gender = e.Gender,
                                      Salary = e.Salary,
                                      Department_id = e.department_id,
                                      Department_Name = d.department_name,
                                      Shift_id = ws.shift_id,
                                      Duration = ws.duration,
                                  }).ToList();
                    // TODO utilize the above result
    
                    string json = Newtonsoft.Json.JsonConvert.SerializeObject(result, Newtonsoft.Json.Formatting.Indented);
                    return result;
                }
            }
        }
    }
    

    It showed the result as follows:

    [{"FirstName":"Peter","LastName":"Joe","Gender":"Male","Salary":1234,"Department_id":1,"Department_Name":"RND","Shift_id":"A","Duration":"morning"},{"FirstName":"John","LastName":"Doe","Gender":"Male","Salary":1234,"Department_id":2,"Department_Name":"Account","Shift_id":"B","Duration":"afternoon"},{"FirstName":"Mary","LastName":"Jones","Gender":"Female","Salary":5566,"Department_id":3,"Department_Name":"HR","Shift_id":"A","Duration":"morning"},{"FirstName":"Elizabeth","LastName":"Tan","Gender":"Female","Salary":9999,"Department_id":1,"Department_Name":"RND","Shift_id":"C","Duration":"night"},{"FirstName":"gg","LastName":"wp","Gender":"NoGender","Salary":8,"Department_id":1,"Department_Name":"RND","Shift_id":"B","Duration":"afternoon"}]

    Thanks everyone, the problem had been solved

提交回复
热议问题