У меня есть следующий код для отображения записи сотрудника из нескольких таблиц, но я получаю одну и ту же запись несколько раз, когда пытаюсь отобразить язык сотрудника. Например: если сотрудник говорит на 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>
Но яполучить дубликат информации, если сотрудник говорит на двух языках, я получаю одну и ту же запись дважды, но отображаю только один язык,
я хочу видеть всю информацию о языке на одной записи