var q_uvu = db.d_events .AsNoTracking() .Where(x => x.event_type.ToLower() == "app_verify" && x.date_apt_exe == null) .Select(s => new { s.id_person, idApt = (string.IsNullOrEmpty(s.id_event) ? "" : "!") }).Distinct(); DateTime datetmp = DateTime.Now.AddDays(-4380); //12 years var qry = (from p in db.d_person from p_att in db.d_person_att.Where(w => w.id_person == p.id_person & w.domain == "A_PEOPL").DefaultIfEmpty() from s in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "SERVICE" && w.active == true).DefaultIfEmpty() from sh in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "HIVST" && w.active == true).DefaultIfEmpty() from q in q_uvu.Where(w => p.id_person == w.id_person).DefaultIfEmpty() where p.date_stopped == null && sh.status == "HIV_YES" && p_att.vt2 != null && //born in PTMC p.pe_dob > datetmp && // < 12 years old (s.status == "MCPC" || s.status == "MCPC_C") select new { p.id_person, q.idApt, p.id_dream, p.pe_surname, p.pe_name, p.pe_sex, p.pe_dob, p.date_started, p.pe_note }).AsEnumerable().Select(s => new { s.id_person, s.idApt, s.id_dream, s.pe_surname, s.pe_name, s.pe_sex, _data = (s.pe_dob.HasValue) ? s.pe_dob.Value.ToShortDateString() : "", s.date_started, s.pe_note }); dt = qry.ToDataTable(); dt.TableName = "lst_data";