コード例 #1
0
        public void Where_UnoptimizedUsingUnaryOperator()
        {
            Siaqodb siaqodb = SiaqodbFactoryExample.GetInstance();

            for (int i = 0; i < 10; i++)
            {
                BoolAndIntExample e = new BoolAndIntExample()
                {
                    SomeBool = i % 2 == 0, SomeInt = i
                };
                siaqodb.StoreObject(e);
            }

            //this query run Unoptimized, problem is !(Not) operator
            var query = from BoolAndIntExample e in siaqodb
                        where e.SomeInt > 5 && !e.SomeBool
                        select e;

            //now all Employee objects are loaded from database and query fall in LINQ to objects
            foreach (BoolAndIntExample e in query)
            {
                //do something with e
            }

            //to optimize query above, just use Equal operator:
            var queryOptimized = from BoolAndIntExample e in siaqodb
                                 where e.SomeInt > 5 && e.SomeBool == false
                                 select e;

            foreach (BoolAndIntExample e in query)
            {
                //do something with e
            }
        }
コード例 #2
0
        public void Where_CrashUsingUnaryOperator()
        {
            Siaqodb siaqodb = SiaqodbFactoryExample.GetInstance();

            for (int i = 0; i < 10; i++)
            {
                BoolAndIntExample e = new BoolAndIntExample()
                {
                    SomeBool = i % 2 == 0, SomeInt = i
                };
                siaqodb.StoreObject(e);
            }

            try{
                //this query crash, problem is !(Not) operator
                var query = from BoolAndIntExample e in siaqodb
                            where e.SomeInt > 5 && !e.SomeBool
                            select e;
                foreach (BoolAndIntExample e in query)
                {
                    //do something with e
                }
            }
            catch (Exception ex)
            {
                Log("Example with unary operator crash as expected:" + ex.Message);
            }

            //to optimize query above, just use Equal operator:
            var queryOptimized = from BoolAndIntExample e in siaqodb
                                 where e.SomeInt > 5 && e.SomeBool == false
                                 select e;

            foreach (BoolAndIntExample e in queryOptimized)
            {
                //do something with e
            }
        }
コード例 #3
0
        public void Where_CrashUsingUnaryOperator()
        {
            Siaqodb siaqodb = SiaqodbFactoryExample.GetInstance();
            for (int i = 0; i < 10; i++)
            {
                BoolAndIntExample e = new BoolAndIntExample() { SomeBool = i % 2 == 0, SomeInt = i };
                siaqodb.StoreObject(e);
            }

            try{
                //this query crash, problem is !(Not) operator
                var query = from BoolAndIntExample e in siaqodb
                            where e.SomeInt>5 && !e.SomeBool
                            select e;
                foreach (BoolAndIntExample e in query)
                {
                    //do something with e
                }
            }
            catch(Exception ex)
            {
                Log("Example with unary operator crash as expected:"+ex.Message);

            }

            //to optimize query above, just use Equal operator:
            var queryOptimized = from BoolAndIntExample e in siaqodb
                        where e.SomeInt > 5 && e.SomeBool==false
                        select e;

            foreach (BoolAndIntExample e in queryOptimized)
            {
                //do something with e
            }
        }