示例#1
0
 private static void CategoryTest()
 {
     using (var db = new TestModel())
     {
         var pc = new ProductCategory();
         //var categories = db.ProductCategory.Where(p => p.parent);
     }
 }
示例#2
0
        private static void JoinTest()
        {
            List<MeanTime> meantimes = new List<MeanTime>();

            var watch = new Stopwatch();
            watch.Start();
            meantimes.Add(new MeanTime("Start.", watch.ElapsedMilliseconds));

            using (var db = new TestModel())
            {
                meantimes.Add(new MeanTime("Created DB object.", watch.ElapsedMilliseconds));

                IQueryable temp = db.Person.Where(p => p.FirstName != "erik");
                meantimes.Add(new MeanTime("Build dummy query", watch.ElapsedMilliseconds));

                var q1 =
                    from p in db.Person
                    where p.FirstName.ToLower() == "erik"
                    join e in db.EmailAddress on p.BusinessEntityID equals e.BusinessEntityID
                    select new { p, e };

                //var q1 =
                //    from p in db.Person
                //    from e in db.EmailAddress
                //    where p.FirstName.ToLower() == "erik"
                //    where p.BusinessEntityID == e.BusinessEntityID
                //    select new { p, e };
                meantimes.Add(new MeanTime("Build first query (method syntax).", watch.ElapsedMilliseconds));

                var list = q1.ToList();
                meantimes.Add(new MeanTime("q1.ToList().", watch.ElapsedMilliseconds));

                foreach (var item in list)
                {
                    Console.WriteLine(item);
                    //Console.WriteLine($"{item.p.FirstName}, {item.e.EmailAddress1}");
                }

            }
            meantimes.Add(new MeanTime("Despose db object.", watch.ElapsedMilliseconds));

            watch.Stop();

            PrintTimmer(meantimes);
            Console.WriteLine($"Tid: {watch.ElapsedMilliseconds}");
        }
示例#3
0
        private static void ExecuteTest()
        {
            List<MeanTime> meantimes = new List<MeanTime>();

            var watch = new Stopwatch();
            watch.Start();
            meantimes.Add(new MeanTime("Start.", watch.ElapsedMilliseconds));

            using (var db = new TestModel())
            {
                meantimes.Add(new MeanTime("Created DB object.", watch.ElapsedMilliseconds));

                IQueryable temp = db.Person.Where(p => p.FirstName != "erik");
                meantimes.Add(new MeanTime("Build dummy query", watch.ElapsedMilliseconds));

                IEnumerable<Person> q1 = db.Person
                    .Where(p => p.FirstName.Length > 1)
                    .Where(p => p.LastName.Length > 1)
                    .Where(p => p.FirstName.ToLower() == "erik");

                meantimes.Add(new MeanTime("Build first query (method syntax).", watch.ElapsedMilliseconds));

                // Same behavior as "IEnumerable<Person> q1 = [query]"
                //IQueryable<Person> q2 = db.Person
                //    .Where(p => p.FirstName.Length > 1)
                //    .Where(p => p.LastName.Length > 1)
                //    .Where(p => p.FirstName.ToLower() == "erik");
                //meantimes.Add(new MeanTime("Build first query (method syntax).", watch.ElapsedMilliseconds));

                var count = q1.Count();
                meantimes.Add(new MeanTime("q1.Count().", watch.ElapsedMilliseconds));

                var list = q1.ToList();
                meantimes.Add(new MeanTime("q1.ToList().", watch.ElapsedMilliseconds));
            }
            meantimes.Add(new MeanTime("Despose db object.", watch.ElapsedMilliseconds));

            watch.Stop();

            PrintTimmer(meantimes);
            Console.WriteLine($"Tid: {watch.ElapsedMilliseconds}");
        }
示例#4
0
        private static void TimeTrialFirst()
        {
            List<Person> somePeopleQ1;
            List<Person> somePeopleQ2;
            List<MeanTime> meantimes = new List<MeanTime>();

            var watch = new Stopwatch();
            watch.Start();
            meantimes.Add(new MeanTime("Start.", watch.ElapsedMilliseconds));

            using (var db = new TestModel())
            {
                meantimes.Add(new MeanTime("Created DB object.", watch.ElapsedMilliseconds));

                db.Database.Log = Console.Write;   // Loggs queries to standard stream (?).
                meantimes.Add(new MeanTime("Initialize query log.", watch.ElapsedMilliseconds));

                IQueryable temp = db.Person.Where(p => p.FirstName != "erik");
                meantimes.Add(new MeanTime("Build dummy query", watch.ElapsedMilliseconds));

                Console.WriteLine("------ Create Query Q1 ------");
                var q1 = QueryMethodSyntax(db);
                meantimes.Add(new MeanTime("Build first query (method syntax).", watch.ElapsedMilliseconds));

                Console.WriteLine("------ Create Query Q2 ------");
                var q2 = QueryQuerySyntax(db);
                meantimes.Add(new MeanTime("Build second query (query syntax).", watch.ElapsedMilliseconds));

                Console.WriteLine("------ Execute Q1 ------");
                somePeopleQ1 = q1.ToList();
                meantimes.Add(new MeanTime("Execute first query (method syntax).", watch.ElapsedMilliseconds));

                Console.WriteLine("------ Execute Q2 ------");
                somePeopleQ2 = q2.ToList();
                meantimes.Add(new MeanTime("Execute second query (query syntax).", watch.ElapsedMilliseconds));

                Console.WriteLine("------");

            }
            meantimes.Add(new MeanTime("Despose db object.", watch.ElapsedMilliseconds));

            watch.Stop();

            PrintTimmer(meantimes);
            Console.WriteLine($"Tid: {watch.ElapsedMilliseconds}");

            Console.WriteLine("Q1: {0}", somePeopleQ1.Count);
            Console.WriteLine("Q2: {0}", somePeopleQ2.Count);
        }
示例#5
0
 private static IQueryable<Person> QueryQuerySyntax(TestModel db)
 {
     // Query syntax.
     return from p2 in db.Person
            where p2.FirstName.Length > 1
            where p2.LastName.Length > 1
            where p2.FirstName.ToLower() == "erik"
            select p2;
 }
示例#6
0
 private static IQueryable<Person> QueryMethodSyntax(TestModel db)
 {
     // Method syntax.
     return db.Person
         .Where(p => p.FirstName.Length > 1)
         .Where(p => p.LastName.Length > 1)
         .Where(p => p.FirstName.ToLower() == "erik");
 }