Subsonic 2.2 Currently supports 5 main database engines:
- SQL Server (2000 through 2008)
- MySQL (5.0+) with special support for InnoDB
- Oracle - although we've had reports of some issues with Foreign Keys and Stored Procedures
- SQL CE (Compact Edition)
We develop everything using SQL Server 2005, so you might fight an optimal experience using this with SQL.
SubSonic supports and has templates for:
- SQL Server (2000-2008)
- MySQL (5.0 +)
- Oracle support through ODP.NET is currently in development. You can get the latest version of the SubSonic core from github. The templates are also available here. Please post details of any issues or questions to the SubSonic google group.
- IBM DB2 support through IBM's .NET driver (IBM.Data.DB2) is currently in development. You can get the latest version of the SubSonic core from github. The templates are also available here. Please post details of any issues or questions to the SubSonic google group.
What about other databases?
Our goal with SubSonic 3.0 was to unhinge the core from any dependency on a specific engine. We do this by using System.Data.Common - which is part of Microsoft's DataFactory stuff. Most major databases have a provider which works with System.Data.Common - including:
- SQL CE
SubSonic will execute queries against these databases, however we're still working on creating a meaningful set of templates for each.
It's important to understand that SubSonic 3.0 talks to the database when creating your Data Access stuff using our T4 Templates. These templates need to query the schema of your database and unfortunately each provider has a different way of returning results.
For instance - if you use Connection.GetSchema(), SQL Server will return a completely different result set than MySQL. This is supposed to be a standard - but there are obviously deviations with each provider.
Our SQL Server templates query INFORMATION_SCHEMA - an ANSI-standard set of system views that each provider should offer for each database. However MySQL doesn't implement them in the same way SQL Server does - so we can't provide a "single template fits all" scenario.
It's our hope that our template library will grow - so if you take the time to create a nice set of templates - please add to our wiki!