FIXED: Update bugs fixed: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16245
Put a check in for Update() which won't execute if there are no columns to update :p
Changed Repository Update<T> method to use RecordBase to allow for use of ActiveRecord and RepositoryRecord
CHANGED: Templates to accomodate this (VB and C#)
42 lines of code changed in 6 files:
VisualSVN is messing with my files :(. And now, here's the patch that doesn't break the build...
0 lines of code changed in 1 file:
Applied serialization patch
12 lines of code changed in 2 files:
FIXED: SubCommander now accurately returns the count of tables (WRT to the include/exclude tablelists)
ADDED: Refactored VB and CS Structs templates to use the new Repository bits, reducing the generated code
ADDED: Reran the generated bits for the test project against scripts in Test Project.
308 lines of code changed in 5 files:
Added Serializable to RepositoryList
4 lines of code changed in 1 file:
CHANGED: New BuildXXX() statements in SQL generators are now qualifying table and column names.
ADDED: New property DelimitedName to TableColumn when just the delimited form of a column is needed vs. fully qualified.
83 lines of code changed in 8 files:
FIXED: VB_ClassTemplate.aspx Hasn't Been Updated to Reflect RepositoryRecord Changes. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16257
FIXED: Template Generated Code Wraps When "namespace" is Encountered Anywhere in Output. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16180
213 lines of code changed in 6 files:
Added ExecuteAsSingle<> to Select() (thanks to rimsystems for the idea)
24 lines of code changed in 2 files:
Added overload to the Select() constructor to take typed columns for safe column names. For example, you can use this query:
"Select(Northwind.Product.ProductIDColumn, Northwind.Product.ProductNameColumn).From<Northwind.Product>()"
To be sure that you have properly qualified column names.
30 lines of code changed in 2 files:
FIXED: CS_ViewTemplate.ascx Does Not Escape SchemaName Setting. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16165
2 lines of code changed in 2 files:
FIXED: QuickTable Incorrectly Calculates Paging Values. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=15073
114 lines of code changed in 3 files:
ADDED: Test for MySqlGenerator.BuildDropTable.
9 lines of code changed in 2 files:
ADDED: MySqlGenerator class.
ADDED: Tests to support MySqlGenerator.
CHANGED: Cleaned up migration test names.
CHANGED: Renamed SqlServerParserTests.cs to SqlServerGeneratorTests.cs to better reflect actual usage.
CHANGED: Changed some methods in ANSISqlGenerator to virtual to allow descendant classes to do their thing.
ADDED: DataService.GetGenerator() overload to accept a Provider for performance.
419 lines of code changed in 10 files:
CHANGED: Correctly implemented IDisposable in Migration (thanks FxCop).
ADDED: Test to make sure MySql generator works with migrations (it doesn't yet).
40 lines of code changed in 2 files:
Added ISubSonicRepository interface
Added SubSonicRepository implementation for AllStructs.cs
Refactored CS_AllStructs template to use better Repository pattern (not perfect - don't want to break the bits now as it's too late). Still using statics as factories, but you can set the Repository property for testing. Or use your own in testing.
130 lines of code changed in 3 files:
CHANGED: Miscellaneous code cleanup.
180 lines of code changed in 46 files:
FIXED: MySqlInnoDBProvider - Alias Casings do not Match in MANY_TO_MANY_CHECK_ALL and MANY_TO_MANY_FOREIGN_MAP_ALL. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16101
ADDED: SubSonic.Utility.MatchesOne() method for cleaner comparison of multiple string conditions.
72 lines of code changed in 14 files:
ADDED: Execute() method to Migrations to support ad-hoc SQL and supporting test.
ADDED: Support for Migrate-On-Dispose, Rob-style, and supporting test.
109 lines of code changed in 2 files:
ADDED: Patch to Support DataProviders in External Assemblies (Thanks Yitzchok!) See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=15978
192 lines of code changed in 8 files:
CHANGED: Eliminated a number of Release configuration compiler warnings; Added/updated documentation stubs.
611 lines of code changed in 41 files:
FIXED: DataReader Exceptions Can Cause Memory Leaks. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=11714
426 lines of code changed in 20 files:
FIXED: DataProvider.GetSPList() Should Return Stored Procedures in Alphabetical Order. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=15996
FIXED: SqlQuery.ExecuteScalar() Does Not Properly Handle/Cast DBNull Return Values. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16012
13 lines of code changed in 4 files:
FIXED: Global - Several issues related to handling of non-standard column names, such as those with, uh, parentheses (ouch),
19 lines of code changed in 6 files:
FIXED: DataProvider - WHERE Clauses are not Schema Qualified. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=15984
CHANGED: Global - Minor code syntax and format changes
59 lines of code changed in 13 files:
FIXED: GetTypeName() in CodeRunner always assumed a curly brace would be on the same line as the namespace.
CHANGED: Minor code cleanup in Migrator.cs.
11 lines of code changed in 2 files:
Added: migrate command to SubCommander command-line help output.
Fixed: When running migrations SubSonic.dll wasn't correctly referenced in dynamic compiled code. Needed the full path.
Fixed: Getting relative migration directory in tests failed under different test runners.
79 lines of code changed in 3 files:
Added: Migration test directory is now dynamically determined during tests vs. being hard coded.
20 lines of code changed in 1 file:
Changed: Tightened up migration error handling and console output.
Changed: SqlServerParserTests to use Assert.AreEqual vs. Assert.IsTrue when comparing strings.
Fixed: DropColumn generation wasn't accounting for dropping defaults.
115 lines of code changed in 8 files:
FIXED: GetValue<T>(string columnName) in TableSchema May Fail with Non-Nullable GUIDs. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=15939
4 lines of code changed in 3 files:
FIXED: AndExpression/OrExpression Improperly Identify a Closed Expression as Open. See: http://codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=15725
9 lines of code changed in 1 file:
Added: SubCommander now supports the migrate command (and it works).
Added: Reference to SubSonic.Migrations to SubCommander.
Changed: Minor code cleanup in Migrator.cs.
31 lines of code changed in 3 files:
Changed: Migrator class can now handle an unspecified toVersion.
Changed: Migrator code refactoring.
158 lines of code changed in 1 file:
Fixed: Migrator now correctly calls the Migrate() method vs. Up() or Down();
Fixed: Migrator was instancing a CSharp CodeDOM for .cs files.
Added: GetGenerator() method to DataService, may move.
133 lines of code changed in 7 files:
Changed: Updated migration tests so all now pass.
Added: AlterColumn support to migrations.
Added: Tests to support AlterColumn.
Fixed: Minor bug in TableSchema.AddPrimaryKeyColumn that appended "Id" to end of column name twice.
116 lines of code changed in 3 files:
Added: AddColumn & RemoveColumn migrations.
Added: Tests to support AddColumn & RemoveColumn migrations.
119 lines of code changed in 2 files:
Changed: Moved MigrationDirection enum from Migrator to Migration.
Added: More migration tests.
Added: Migration CreateTable adds a PrimaryKey when creating if missing.
Removed: Unused migration support code.
153 lines of code changed in 3 files:
FIXED: Open DataReader in Scaffold Many-to-Many's
CHANGED: Global - String operation optimizations; minor code formatting.
207 lines of code changed in 29 files: