The mechanism for handling Many to Many tables has been completely reworked. Formerly, the model relied on column naming conventions and the use of a common suffix to indicate that a given table was an M2M map. As of this CS, a mapping table is identified by its design. A table will automatically be considered a mapping table if:
- It has exactly 2 columns
- Both columns are primary keys for the table and foreign keys to another one.
The manyToManySuffix parameter is now ignored.
This proved a bit more difficult than anticipated due to the new loading mechanism. The process of determining M2M mappings is not particularly compatibile the concept of load on demand schema retrieval.
Rob threw me for a loop on that one. So I wrote him a grumpy email. I hope he still buys me those drinks at Mix he promised.
Fixes
- AutoScaffold now correctly saves changes
- Incorrect VarBinary data type mapping
- Work Item 9296: Identity column names must be indentical when using Many to Many (ManyManyList) control
- Work Item 9338: Transaction not being set in SqlDataProvider.ExecuteTransaction()
- Work Item 9364: BetweenAnd() does not set parameter names
- Work Item 9367: DataProvider.BuildWhere() - Bad SQL
- Work Item 9370: Duplicate properties if >=2 FK columns reference same table
- Work Item 9374: CodeService.RunTemplate() uses wrong template directory
Big props to justinmk for demonstrating the correct way to submit SubSonic bugs (hint hint)
Download