How-to: Generating CSLA Business Objects from Views and Stored Procedures

We have been working on a major update to the Generator CSLA Templates to support Views and Stored Procedures as well as CSLA 4.3. The following document will show you how you can take advantage of generating against stored procedures and views by updating your existing templates. Please note that the latest CSLA templates require Generator 6.0.3!

Updating the Entities template output

The quickest way to add support for generating against a view or stored procedure is to update the entities template output by using Manage Outputs. Once the Entities template output is open, check the IncludeFunctions and IncludeViews properties.

We decided against breaking backwards compatibility with the Entities output, this saves you from having to reconfigure all of your outputs in the new release. To select what Business Object Type a specific view or stored procedure should be generated as, you will need to add an Extended Property to the view or stored procedure.

Here is a list of the valid Extended Property names that can be added to a view or stored procedure.

Extended Property Name Extended Property Value Business Object Type
DynamicRoot Dynamic Root
EditableChild Editable Child
EditableRoot Editable Root
ReadOnlyChild Read Only Child
ReadOnlyRoot Read Only Root
SwitchableObject Switchable Object
DynamicRootList Dynamic Root List
EditableRootList Editable Root List
DynamicListBase Dynamic List Base
EditableChildList Editable Child List
ReadOnlyList Read Only List
ReadOnlyChildList Read Only Child List
NameValueList Name Value List

After you have configured this extended property, all you need to do is regenerate!

Adding a custom output

One can also generate against a view or stored procedure by adding a new template output to a CodeSmith Generator Project File. Once you select "Add Output" browse for one of the 14 business object master templates located inside of the CSharp
BusinessLayer or VisualBasicBusinessLayer folders. Next, populate one of the SourceCommand, SourceTable or SourceView properties to generate a business object against this datasource.

Finally, click save and
regenerate!