ContainsKey

 

It is possible to search for the objects that contain given key with use of ContainsKey

Example:

Dynamic d1 = new Dynamic();

d1["ID"] = 123;

db.Store(d1);

 

Dynamic d2 = new Dynamic();

d2["ID"] = "SomeText";

db.Store(d2);

 

Dynamic d3 = new Dynamic();

d3["ID-1"] = 45.89;

db.Store(d3);

 

var res = db.ExecuteQuery("SELECT Dynamic WHERE ContainsKey(ID)").Cast<Dynamic>();

Assert.AreEqual(2, res.Count());

 

res = db.ExecuteQuery("SELECT Dynamic WHERE !ContainsKey(ID)").Cast<Dynamic>();

Assert.AreEqual(1, res.Count());

 

 

 

Dynamic Inner = new Dynamic();

Inner["InnerField"] = "inner field";

 

Dynamic Outer = new Dynamic();

Outer["OuterField"] = Inner;

 

db.Store(Outer);

 

res = db.ExecuteQuery("SELECT Dynamic WHERE ContainsKey(OuterField.InnerField)").Cast<Dynamic>().ToList<Dynamic>();

Assert.AreEqual(1, res.Count());

 

 

And LINQ

 

var linqRes = (from Dynamic d in db where d.ContainsKey("OuterField.InnerField") select d).ToList();

Assert.AreEqual(1, linqRes.Count());