Generics, Collections…

 

Database supports generic containers

public class FileDetails

{

   public string Name { get; set; }

}

public class MyFile

{

   public List<FileDetails> info { get; set; }

}

 

var mf = new MyFile() { info = new List<FileDetails>() };

 

mf.info.Add(new FileDetails() { Name = "log.txt" });

mf.info.Add(new FileDetails() { Name = "notes.doc" });

 

db.Store(mf);

 

var files = db.ExecuteQuery("SELECT MyFile WHERE info._items.Name = 'log.txt'");

Where _items is an array inside List<>. Database attempts to make all properties searchable, thus even private properties are available for search.
All these properties can be discovered using Reflector for instance.

To query generics types shall be written using CLR names

List<int> data = new List<int>();

data.Add(1);

data.Add(2);

 

db.Store(data);

 

var numbers = db.ExecuteQuery("SELECT List<Int32> WHERE _items CONTAINS 2");