Пример #1
0
        public void AnotherExampleUsingPureLinq()
        {
            EmployeeDataContext db = new EmployeeDataContext();

            Stopwatch sw = Stopwatch.StartNew();
            for (int i = 0; i < 10; ++i)
            {
                var result = (from e in db.Employees
                              where (e.LastName == "Smith" || e.FirstName == "Mary") && e.Sex == 'F' && e.HireDate < new DateTime(1970,1,1)
                              select e.id).Count();
                Assert.AreEqual(837, result);
            }
            sw.Stop();
            Debug.WriteLine(sw.ElapsedMilliseconds);
        }
Пример #2
0
        public void AThirdExampleUsingParseQuery()
        {
            EmployeeDataContext db = new EmployeeDataContext();

            IDictionary<string, Field<Employee>> fieldDefinitions =
                    new Dictionary<string, Field<Employee>>()
                    {
                        { "id", new IntegerField<Employee>(e => e.id) },
                        { "lastname", new TextField<Employee>(e => e.LastName) },
                        { "firstname", new TextField<Employee>(e => e.FirstName) },
                        { "sex", new TextField<Employee>(e => e.Sex.ToString()) },
                        { "birthdate", new DateField<Employee>(e => e.BirthDate) },
                        { "hiredate", new DateField<Employee>(e => e.HireDate) },
                        { "age", new IntegerField<Employee>(e => (DateTime.Today.Year - e.BirthDate.Year)) }
                    };
            QueryParser<Employee> parser = new QueryParser<Employee>(e => fieldDefinitions.ContainsKey(e) ? fieldDefinitions[e] : null);

            var expr = parser.parse("LastName eq 'Higgins' and age < 25");
            var result = db.Employees.Where(expr).Select(e => e.id).Count();

            Assert.AreEqual(39, result);
        }
Пример #3
0
        public void AnotherExampleUsingParseQuery()
        {
            EmployeeDataContext db = new EmployeeDataContext();

            IDictionary<string, Field<Employee>> fieldDefinitions =
                    new Dictionary<string, Field<Employee>>()
                    {
                        { "id", new IntegerField<Employee>(e => e.id) },
                        { "lastname", new TextField<Employee>(e => e.LastName) },
                        { "firstname", new TextField<Employee>(e => e.FirstName) },
                        { "sex", new TextField<Employee>(e => e.Sex.ToString()) },
                        { "birthdate", new DateField<Employee>(e => e.BirthDate) },
                        { "hiredate", new DateField<Employee>(e => e.HireDate) }
                    };
            QueryParser<Employee> parser = new QueryParser<Employee>(e => fieldDefinitions.ContainsKey(e) ? fieldDefinitions[e] : null);

            Stopwatch sw = Stopwatch.StartNew();
            for (int i = 0; i < 100; ++i)
            {
                var x = parser.parse("(LastName eq 'Smith' | firstname = 'Mary') and sex = 'F' and hireDate < 1970-1-1");
            }
            sw.Stop();
            Debug.WriteLine(sw.ElapsedMilliseconds);

            var expr = parser.parse("(LastName eq 'Smith' | firstname = 'Mary') and sex = 'F' and hireDate < 1970-1-1");

            Stopwatch sw2 = Stopwatch.StartNew();
            for (int i = 0; i < 10; ++i)
            {
                var result = db.Employees.Where(expr).Select(e => e.id).Count();

                Assert.AreEqual(837, result);
            }
            sw2.Stop();
            Debug.WriteLine(sw2.ElapsedMilliseconds);
        }
Пример #4
0
        public void SimpleExampleUsingPureLinq()
        {
            EmployeeDataContext db = new EmployeeDataContext();

            Stopwatch sw = Stopwatch.StartNew();
            for (int i = 0; i < 100; ++i)
            {
                var result = (from e in db.Employees
                              where e.LastName == "Higgins"
                              select e.id).Count();
                Assert.AreEqual(393, result);
            }
            sw.Stop();
            Debug.WriteLine(sw.ElapsedMilliseconds);
        }
Пример #5
0
        public void SimpleExampleUsingLinqAsMethods()
        {
            EmployeeDataContext db = new EmployeeDataContext();

            var result = db.Employees.Where(e => e.LastName == "Higgins").Select(e => e.id).Count();

            Assert.AreEqual(393, result);
        }