static void Main(string[] args) { Console.WriteLine("Proceso iniciado."); try { var dbContext = new PlutoContext(); } catch (Exception ex) { Console.WriteLine("Error:"); Console.WriteLine(ex.Message); Console.ReadLine(); } Console.WriteLine("Proceso terminado."); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("Proceso iniciado."); try { var dbContext = new PlutoContext(); //LINQ Syntax var query = from c in dbContext.Courses where c.Name.Contains("c#") orderby c.Name select c; Console.WriteLine("LINQ Sintax Results;"); foreach (var course in query) { Console.WriteLine($"Course name: {course.Name}"); } //Extension Methods var query2 = dbContext.Courses .Where(c => c.Name.Contains("c#")) .OrderBy(c => c.Name); Console.WriteLine("Extension Methods Results;"); foreach (var course in query2) { Console.WriteLine($"Course name: {course.Name}"); } //Deferred Execution //var beginnerCourses = dbContext.Courses.Where(c => c.IsBeginnerCourse == true); //Error because IsBeginnerCourse is a property that is functional only in memory //There are somo options to run the case like before, they will be see later in the course var beginnerCourses = dbContext.Courses.ToList().Where(c => c.IsBeginnerCourse == true); //This will work but has to load all courses in the memory of the app to use the property of IsBeginnerCourse //IQueryable ---> IEnumerable //IQueryable: Allows queries to be extended without being executed. //One query run in the database, but with the filter of the where IQueryable <Course> coursesIQ = dbContext.Courses; var filteredIQ = coursesIQ.Where(c => c.Level == 1); foreach (var course in filteredIQ) { Console.WriteLine(course.Name); } //One query with all the courses, and the in memory the filter is applied IEnumerable <Course> coursesIE = dbContext.Courses; var filteredIE = coursesIQ.Where(c => c.Level == 1); foreach (var course in filteredIE) { Console.WriteLine(course.Name); } } catch (Exception ex) { Console.WriteLine("Error:"); Console.WriteLine(ex.Message); Console.ReadLine(); } Console.WriteLine("Proceso terminado."); Console.ReadLine(); }