1. A computer-implemented method for dynamically determining a database structure and creating a data store for storing objects of one or more data types in accordance with the determined database structure, the method comprising: receiving a programming code segment comprising a definition of the one or more data types and at least one adornment associated in the code segment with at least one of the one or more data types, the at least one adornment reflecting an intended use or access of the associated data type; identifying at least one adornment defined within the programming code segment and associated with at least one of the data types, the at least one adornment comprising identity attribute applied to at least one field in a class which forms a root of a hierarchy and which indicates that the data type should represent a unique key within the database, and an index attribute indicating that the associated data type should be able to be queried, a back pointer attribute indicating that a one-to-many relationship exists between an indicated second data type and the data type, and a single reference attribute indicating a one-to-one relationship exists between instances of the data type and an indicated second data type; based on each of the definitions of the one or more data types and the at least one adornment, determining a database structure to be used to store data corresponding to the one or more data types, the database structure comprising a type table defining at least one of the one or more types identified in the code segment; determining if appropriate the determined database structures exist; and creating a data store corresponding to the determined database structure, the data store comprising an ObjectStore that provides base functionality to serialize and deserialize a data structure to a data source, and a StoreService which is a ServiceBus service providing a single point of contact to clients to persist objects in the data store.