public ActionResult Index(string searchString) { MarsEntities ms = new MarsEntities(); List <Student> students = ms.Students.ToList(); List <StudentRankDetail> rankDetails = ms.StudentRankDetails.ToList(); List <Parent> parents = ms.Parents.ToList(); var allDetails = from s in students join rd in rankDetails on s.StudentID equals rd.StudentID into table1 from rd in table1.DefaultIfEmpty() join p in parents on s.StudentID equals p.StudentID into table2 from p in table2.DefaultIfEmpty() select new MultipleTableJoin { students = s, parents = p, rankDetails = rd }; if (!String.IsNullOrEmpty(searchString)) { //IEnumerable<MultipleTableJoin> allDetails = from i in ViewData as SelectList where i.Key == "joinTables" select i.Value; //ViewData["joinTables"] = from item in ViewData["joinTables"] as allDetails where item.StudentName = searchString or //allDetails = from item in allDetails where item.students.StudentName == searchString select item; searchString = searchString.ToLower(); allDetails = allDetails.Where(p => p.students.StudentName.ToLower().Contains(searchString) || p.rankDetails.Rank.Rank_Name.ToLower().Contains(searchString) || p.students.Student_Phone.ToString().ToLower().Contains(searchString)); //allDetails = allDetails.Where(p => p.Father_Name.Contains(searchString) //|| p.Mother_Name.Contains(searchString) || p.Parent_Email.Contains(searchString)); } return(View(allDetails)); }
// GET: MultipleTable public ActionResult Index() { MarsEntities ms = new MarsEntities(); List <Student> students = ms.Students.ToList(); List <StudentRankDetail> rankDetails = ms.StudentRankDetails.ToList(); List <Parent> parents = ms.Parents.ToList(); ViewData["joinTables"] = from s in students join rd in rankDetails on s.StudentID equals rd.StudentID into table1 from rd in table1.DefaultIfEmpty() join p in parents on rd.StudentID equals p.StudentID into table2 from p in table2.DefaultIfEmpty() select new MultipleTableJoin { students = s, parents = p, rankDetails = rd }; return(View(ViewData["joinTables"])); }