Query in LINQ, How to concatenate fields

0

Good afternoon,

I have the following left join

var innerJoin = from emp in db.Tbl_Empleado
                        join mb in db.Tbl_MarcacionesBiometrico 
                        on emp.EmpId equals mb.EmpId into MarcBio
                        from mb2 in MarcBio.DefaultIfEmpty()
                        join hr in db.Tbl_Horario
                        on emp.EmpId equals hr.EmpId into Horas
                        from hr2 in Horas.DefaultIfEmpty()
                        select new
                        {
                            EmpId = emp.EmpId,
                            EmpNombre = emp.EmpNombre,
                            MarBioAnio = mb2.MarBioAnio,
                            MarBioMes = mb2.MarBioMes,
                            MarBioDia = mb2.MarBioDia,
                            MarBioHora = mb2.MarBioHora,
                            MarBioMinuto = mb2.MarBioMinuto,
                            HrHoraEntrada = hr2.HorHoraEntrada,
                            HrHoraInicioDescanso = hr2.HorHoraInicioDescanso,
                            HrHoraFinDescanso = hr2.HorHoraFinDescanso,
                            HrHoraSalida = hr2.HorHoraSalida,
                            HrDia = hr2.HorDia

                        };

My relational schema is as follows

What I want is to be able to join the fields MarBioAnio, MarBio, MarBiosMes as a single field , I also need to nir the fields MarBioHora, MarBioMinuto as a single field and I do not know how to do that in linq.

By the way, I want to know if you could help me, I also need to be able to compare the markings that the employee made in the biometric with his schedule based on it being able to determine the extra hours.

    
asked by René Zelaya 30.11.2017 в 00:00
source

1 answer

1

Using the normal concatenation you can achieve it:

var innerJoin = from emp in db.Tbl_Empleado
                        join mb in db.Tbl_MarcacionesBiometrico 
                        on emp.EmpId equals mb.EmpId into MarcBio
                        from mb2 in MarcBio.DefaultIfEmpty()
                        join hr in db.Tbl_Horario
                        on emp.EmpId equals hr.EmpId into Horas
                        from hr2 in Horas.DefaultIfEmpty()
                        select new
                        {
                            EmpId = emp.EmpId,
                            EmpNombre = emp.EmpNombre,

                            Concatenacion1 = mb2.MarBioAnio + " " + mb2.MarBioMes  + " " + mb2.MarBioDia,
                            Concatenacion2 = mb2.MarBioHora + " " + mb2.MarBioMinuto,

                            HrHoraEntrada = hr2.HorHoraEntrada,
                            HrHoraInicioDescanso = hr2.HorHoraInicioDescanso,
                            HrHoraFinDescanso = hr2.HorHoraFinDescanso,
                            HrHoraSalida = hr2.HorHoraSalida,
                            HrDia = hr2.HorDia

                        };
    
answered by 30.11.2017 в 00:10