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(); var qry = (from p in db.d_person from q in q_uvu.Where(w => p.id_person == w.id_person).DefaultIfEmpty() from p_att in db.d_person_att.Where(w => w.id_person == p.id_person & w.domain == "A_PEOPL").DefaultIfEmpty() where p_att.vt12 == "HIV_TEST" && p.date_stopped == null 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";