A number of miscellaneous items in this Change Set, including some long overdue fixes and support for some specific database scenarios. Rob is cranking on a new template and code generation functionality that should do great things for the long term management and extensibility of the platform.
Next up, I'm going to be taking a solid swing at a long-standing pain point: naming. Fundamentally, I'm going to be taking the approach described by Phil Haack which should make some real advances in enabling developer control of the code generation output.
Download
Bugs
- CodeGeneration.cs - Fixed naming convention error that create compile issues against tables with column names that begin with lower case letters.
- ActiveRecord.cs - Fixed an issue that could result in "true" or "false" string values being inserted as "1" or "0" in non-boolean columns
- Global - Guid functionality has been restored.
Enhancements
- TableSchema.cs - Added IsReadOnly column property which is used to control updating of individual columns on the database (see next item). Cached schema generation code updated to reflect this change.
- Global - Added support for SQL Server timestamp datatype. Using the aforementioned IsReadOnly property, SubSonic drops these values from insert and update queries so that they can be set by database instead (timestamp datatype is read only). The support of this property will be used in future versions to perform concurrency checks.
- ScaffoldCodeGenerator.cs - Added support for non-int primary key data types.
- ScaffoldCodeGenerator.cs - Improved support of nullable data types.