The database agnostic DAL framework
The data store providers
ODS generated DALs implement a provider model that allows plug-in support for different database types. The data store providers are the only part of the DAL that actually communicate with databases. Each provider deals with a specific type of database such as SQL Server or MySQL but they all implement the same interface. This allows the rest of the DAL to be completely database agnostic.
Write Once
The DAL exposes a single interface that your application uses to store and retrieve objects. Once you've written your application against this interface, you can seamlessly switch data store providers and use any of the supported database types without changing your code. As new database types are supported by ODS, you can generate new DAL source code and seamlessly support them too.
Putting it all together
Each data store provider requires an XML initialisation string, similar to a database connection string. It essentially tells the data store provider which database to connect to (or create) and which username and password to use. By creating multiple data store providers and using different initialisation strings your application can simultaneously use any number of databases of any of the supported database types, without changing your code.