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 nowminus25 = DateTime.Now.AddDays(-25); var qry = (from p in db.d_person from q in q_uvu.Where(w => p.id_person == w.id_person).DefaultIfEmpty() from e in db.d_events.Where(w => p.id_person == w.id_person && w.event_type == "EXAMS") where e.ev_vt1 == "SP_REFERTO" && p.date_stopped == null && e.date_apt_exe < nowminus25 select new { p.id_person, q.idApt, p.id_dream, p.pe_surname, p.pe_name, p.pe_sex, p.pe_dob, e.date_apt_exe }).AsEnumerable().Select(s => new { s.id_person, s.idApt, s.id_dream, s.pe_surname, s.pe_name, s.pe_sex, dob = (s.pe_dob.HasValue) ? s.pe_dob.Value.ToShortDateString() : "", sampledata = (s.date_apt_exe.HasValue) ? s.date_apt_exe.Value.ToShortDateString() : "" //s.Note }).DistinctBy(d => d.id_person); dt = qry.ToDataTable(); dt.TableName = "lst_data";