DBML Template


The Dbml.cst template is used to create a LINQ to SQL dbml file. The file conforms to the Microsoft DbmlSchema.xsd schema. This is the same document that the LINQ to SQL designer uses. The generated dbml file from this template can also be edited from the LINQ to SQL designer.

The template will create a new file if it doesn't exist. If the file does exist, the template will read it in and update it. This allows you to make changes to the file and not have it overwrite if the template is re-ran. However, only some of the attributes are safe from overwriting. Here is a list of safe attributes. They will be listed as an xpath.

Safe Attributes to change in the Dbml file ...

  • Database/@Class - The name of the DataContext class that will be generated.
  • Database/@EntityNamespace - The namespace for the entity classes.
  • Database/@ContextNamespace - The namespace for the DataContext class.
  • Table/@Member - The property name for the table in the DataContext class.
  • Type/@Name - The name of the entity class.
  • Column/@Member - The property name for the column in the entity class.
  • Column/@Storage - The private field LINQ to SQL will us to assign values to.
  • Association/@Member - The property name for this association.
  • Association/@Storage - The private field LINQ to SQL will us to assign values the association to.
  • Association/@DeleteOnNull - Deletes row when association is set to null. Value will not be persisted if the CST's IncludeDeleteOnNull Property is set to false.
  • Function/@Method - The name of the method for the database procedure.
  • Parameter/@Parameter - The method argument name that maps to the database procedure parameter.

Warning: Be aware that the template will drop tables, columns and associations that it did not find in the database.

Properties on the Dbml.cst template:

The EnumList, IgnoreList and IncludeList properties use a list of Regular Expressions that match the the full name of a Table, View, Command.

Here is a common Regex pattern that will match a table by name (E.G., ^owner.TableName$). For Example, the following regex (^dbo.Account$) will match the Account table.

We recommend using Expresso to build your regular expression lists.

Property

Description

1.Database

 

CleanExpression

List of regular expressions to clean table, view, column and procedure names. Any matched text found will be removed from the name.

EnumList

List of regular expressions to identify an Enum Table.

IgnoreList

List of regular expressions used to ignore tables, views and procedures when generating mapping.

IncludeListList of regular expressions used to include tables, views and procedures when generating mapping. When this property is set the IgnoreList property will be ignored and only tables included in this list will be used.

IncludeFunctions

Include stored procedures and user functions in mapping.

IncludeViews

Include views in mapping.

SourceDatabase

The source database to generate the dbml file for.

2.Class

 

ContextNamespace

The namespace to use for the context class file.

EntityBase

The base class for the entity.

EntityNamespace

The namespace to use for the entity class files.

IncludeDeleteOnNull

Templates will generated DeleteOnNull Attribute for Associations.

Naming Conventions

A Menu of options for naming objects in the dbml.

AssociationNaming

Add a list suffix or pluralize associations to an object.

EntityNaming

Generate entity objects in singular or plural form.

TableNaming

The table naming convention followed in the source database.

3.Enum

 

NameColumn

List of regular expressions to identify an Enum Table's Name Column.

DescriptionColumm

List of regular expressions to identify an Enum Table's Description Column.

4.Mapping

 

DbmlFile

The path to the dbml file to generate.