What happens when you want your DAL to do something that ODS doesn't support out of the box? Since ODS generates the entire DAL as source code, you can change the source code and make it do whatever you want! The source code is yours to do with as you want. To continue to enjoy the benefits of automatic versioning and ODS Design Studio, ODS also provides a number of structured ways to customise the DAL source code after it's been generated.
User Methods
User methods are an ODS Design Studio feature. You can add User Methods to a Class in ODS Design Studio. These methods are just like Standard and Custom methods except that you can specify your own SQL for each database type you want to support. ODS will automatically package your SQL into a stored procedure and generate all the source code required to call it, just like Standard and Custom methods. This gives you the flexibility to write your own SQL and still have ODS auto generate the source code.
User modifiable classes
In most situations you will want to refine and change the DAL iteratively over the lifetime of a project, modifying the ODS solution and generating new source code many times as you refine the design. Automatic versioning makes this easy. However, manually modifying the generated source code won't work in this scenario. Any manual source code changes you make will be overwritten when new source code is generated.
To get around this ODS can generate empty user modifiable classes that inherit from the automatically generated classes. You can freely modify these "user" classes and override or add to the functionality of the automatically generated code. ODS will never overwrite the user modifiable class files when it generates source code.
User modifiable classes can be used to override method functionality and add or override class state. The user modifiable driver class can be used to customise database creation and database upgrades or modify the stored procedures.