Asp.net Join создает дубликаты - PullRequest
       17

Asp.net Join создает дубликаты

0 голосов
/ 07 ноября 2019

У меня есть следующий код для отображения записи сотрудника из нескольких таблиц, но я получаю одну и ту же запись несколько раз, когда пытаюсь отобразить язык сотрудника. Например: если сотрудник говорит на 3 языках, я получаю одну и ту же запись 3 раза, и на каждой записи отображается каждый язык. Как я могу обновить объединение, чтобы объединить его так, чтобы одна запись сотрудника и несколько языков

 public IHttpActionResult GetEmployees()
 {
         var query = (from emp in db.employees /*where ToInt32(emp.active) =1*/
         join location in db.locations on emp.location_id equals location.id into emp_loc
         from  location in emp_loc.DefaultIfEmpty()    
         where emp.active.Equals(1)

         join mail in db.mail_station on emp.mail_station_id equals mail.id
         into emp_mail
         from mail in emp_mail.DefaultIfEmpty()
         join mgr in db.employees on emp.supervisor_emp_id equals mgr.id
         into emp_supervisor
         from mgr in emp_supervisor.DefaultIfEmpty()

// below 
         join emplang in db.Employee_Languages on emp.id equals emplang.Employee_id
         into emp_emplang
         from emplang in emp_emplang.DefaultIfEmpty()
         join lang in db.Languages on emplang.Languages_id equals lang.id
         into emp_lang
         from lang in emp_lang.DefaultIfEmpty()
         select new
            {
             emp.employee_number,
             emp.employee_photo,
             emp.first_name,
             emp.supervisor_emp_id,
             emp.Teams,
             mail.code,
             mail.name,
             ManagerFirstName = mgr.first_name,
             lang.Language1,
             emplang.Verbal_Proficiency,
             emplang.Written_Proficiency,
             emplang.Certification_Location,

      });
      var employees = query.ToList();
      return Ok(employees);

 }

В подробном представлении сотрудника я пытался отобразить информацию о языке, как показано ниже

   <table id="myTable" class="table table-striped table-bordered" datatable="ng" dt-options="vm.dtOptions" dt-instance="vm.dtInstance" width="100%" dt-column-defs="vm.dtColumnDefs">
     <tr>
      <td><strong>Language:</strong></td>
      <td><strong>Verbal Proficiency:</strong></td>
      <td><strong>Written Proficiency:</strong></td>
      <td><strong>Certification Location:</strong></td>
     </tr>
     <tr>
      <td>{{Getemployee.Language1}}</td>// list of all langauage english, spanish, arabic,....
      <td>{{Getemployee.Verbal_Proficiency}}</td>
      <td>{{Getemployee.Written_Proficiency}}</td>
      <td>{{Getemployee.Certification_Location}}</td>
     </tr>
    </table>

Но яполучить дубликат информации, если сотрудник говорит на двух языках, я получаю одну и ту же запись дважды, но отображаю только один язык,

я хочу видеть всю информацию о языке на одной записи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...