Complex Dynamic Objects

 

Dynamic objects can contain other dynamic objects

 

Dynamic dynAddress = new Dynamic();

dynAddress["StreetName"] = "Wall street";

dynAddress["HouseNumber"] = 54;

 

Dynamic dynHero = new Dynamic();

dynHero["Name"] = "Spiderman";

dynHero["Address"] = dynAddress;//dynamic object field

Dynamic dynPerson = new Dynamic();

dynPerson["Name"] = "Mr.Black";

dynPerson["Hero"] = dynHero; //dynamic object field

db.Store(dynPerson); // stores all referenced objects as well

 

SQL Query

 

SQL syntax for complex dynamic objects is similar to native objects

 

SELECT Dynamic WHERE Hero.Address.StreetName = 'Wall street'

 

SELECT Dynamic WHERE Hero.Address.StreetName + 5 = 'Wall street5'

 

LINQ Query

 

Object fields in dynamic objects can be accessed in an array-like manner

 

from Dynamic d in db where d["Hero"]["Address"]["StreetName"] == "Wall street" select d


from Dynamic d in db where (string)d["Hero"]["Address"]["StreetName"] + 5 == "Wall street5" select d