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 } }
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 } }
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 } }