Designer - Preferences and Project properties
Preface
LLBLGen Pro can be controlled by two types of settings: User Preferences and Project Properties. User Preferences are stored per user and control the
designer and initial settings for new projects. Project Properties are settings specific for the loaded project and are stored in the project file.
Once the project is created, the project properties are independent of the user preferences, so changing the user preferences has no effect on the
settings in a project. This makes it possible to share project specific settings among multiple developers. LLBLGen Pro v2.5's preferences file is a different file
than the previous designers use, so you can keep LLBLGen Pro v2.5, LLBLGen Pro v2.0 and LLBLGen Pro v1.0.200x.y installed side-by-side using different preferences.
Note: |
Some of the settings below discuss pluralization and singularization of names. Pluralization and Singularization takes place if a plug-in has been bound to the designer events for name pluralization and singularization. See Working with plug-ins for more details. |
User Preferences
It is key to first set the User preferences prior to creating any projects, because a new project gets its initial values for several properties from
the current user preferences. To access the user preferences dialog, select File -> Preferences... in the menu. Below is an example of how the dialog looks like. The values shown aren't the default values per preference. For the default value for a preference setting, please see the specific preference description below.
User preferences dialog
General settings
- Preferred project folder. The folder where you want to store LLBLGen Pro project files. This folder will be preselected when you create a
new project. You can browse to the folder by clicking the '...' button.
- Preferred destination root folder. The preferred destination root folder in which all the files and directories are created by the code generator.
You can browse to the folder by clicking the '...' button.
Catalog Refresher specific settings
- AddNewElementsAfterRefresh When set to true, any new entities, typed views and stored procedures are added to the project automatically after a
catalog refresh has been completed. Default is false.
- AddNewFieldsAfterRefresh When set to true (default), any newly found, unmapped field in an entity's target, which aren't removed previously
from the entity, is added as a new entity field to the Entity automatically after a catalog refresh has been completed, except if the entity is in
a TargetPerEntityHierarchy hierarchy and not the root of the hierarchy. If the entity is in a TargetPerEntityHierarchy hierarchy and the new target
field is not nullable, it's added to the root entity only, if this setting is set to true.
- AddNewViewsAsEntitiesAfterRefresh When set to true, for each new view found in the catalog(s) a new entity will be added to
the project automatically, after a catalog refresh has been completed. Default is false. This option is ignored if AddNewElementsAfterRefresh
has been set to false as well.
- CreateBackupBeforeRefresh When set to true, LLBLGen Pro will backup your current project before refreshing any catalogs.
This is the default and recommended setting. Default is true.
- DriverCommandTimeout The value of this setting controls the timeout value of the ADO.NET commands used to retrieve meta data from the database when a
project is created or when a catalog is refreshed. Specified in seconds. Not used with Firebird as Firebird doesn't support command timeouts. Default is 30.
- HideManyToManyRelationsOnCreation When set to true (default is false), LLBLGen Pro will mark every new M:N relation created as 'hidden'. This can
be helpful if your project has a lot of M:N relations which aren't really used. To unhide these relations, use for example the 'Relations' tab in the
Entity editor by multi-selecting the relations you want to mark un-hidden.
- ManuallySelectRenamedTargetsAfterRefresh When set to true, (default is false) LLBLGen Pro will show you a dialog in which you can select the targets
for entities for which the catalog refresher has detected that the targets aren't present in the new catalog, and are probably renamed. Overruled by
an unattended refresh, in which case the catalog refresher will use the default: false.
- ShowReportAfterRefresh When set to true, the refresher will show a report after the refresh has been completed with the changes
it could detect. For new users, it's recommended that they keep this option set to true. Default is true.
- SyncMappedElementNamesAfterRefresh When set to true (default is false), LLBLGen Pro will rename any entity, field mapped on relation, typed view,
entity field and typed view field if the name of the element they're mapped on has changed, for example a table field is renamed. Setting
this option to true can break your own code, so use this option with care.
- SyncRenamedFieldElementsAfterRefresh When set to true (default is false), LLBLGen Pro will sync manually renamed field elements after a refresh if SyncMappedElementNamesAfterRefresh is set to true. If SyncMappedElementNamesAfterRefresh is set to false, this setting is ignored. Field elements are: Entity fields and fields mapped onto relations.
- UpdateCustomPropertiesAfterRefresh When set to true, any custom property in an entity, entity field, typed view, typed view
field or stored procedure will be updated with a similar named custom property in the newly catalog information, after a refresh of the
catalog(s). Setting this option to true can break your own code, so use this option with care. If you have set RetrieveDBCustomProperties
to false, this option has no effect. Default is false.
- VerboseRefresh When set to true, LLBLGen Pro will show a warning before the refresh will start and will pop up the backup
filename if applicable. It's recommended for new users to keep this setting set to true. Default is true.
Designer behavior specific settings
- AddtionalPluginsFolder The additional plug-ins folder to load plug-ins from. This is an absolute path.
- ChangedElementBackColor When an entity, typed list, typed view or stored procedure call definition is changed, its node's back
color in the project explorer will change color to the color set as ChangedElementBackColor. Default is Color.OldLace.
- ChangedElementForeColor When an entity, typed list, typed view or stored procedure call definition is changed, its node's text
color in the project explorer will change color to the color set as ChangedElementForeColor. Default is Color.DarkSlateGray.
- ConfirmDesignerClose When set to true, the user has to confirm a closure of the LLBLGen Pro designer. Default is false.
- CreateBackupBeforeRunningPlugin When set to true (default), a backup of the current project is created before you run a plugin.
It is recommended you leave this setting set to true. Default is true.
- DefaultBackupFolder The default backup folder in which LLBLGen Pro will create backups of the project loaded, for example before a refresh is performed. Specify the folder with full path or if you want to make the path relative to the project location, specify the path as a relative path. A relative path starts with '.\' or with '..\' (without the quotes). If you leave this preference empty, the default, the folder the project file is located in, is used.
- FieldsOnRelatedFieldAreReadOnly When set to true, new fields mapped onto related fields are set to readonly. Default is false.
- IgnoreSystemElementsInCatalogs When set to true, system views and system tables in catalogs are ignored when you retrieve new
entities and/or views. Default is false.
- ProjectExplorerConfirmElementDelete When set to true, each delete action performed in the project explorer has to be confirmed.
Default is true.
- ProjectExplorerOpenElementOnDoubleClick When set to true, double-clicking an element node (entity / typed list / typed view /
stored procedure call) will also open the element in its editor. The element's node is also expanded/collapsed. When set to false,
double-clicking a node in the tree will just expand/collapse the node. Default is false.
- ShowInScreenHints When set to true, the various edit windows, which are shown as tabs in the center area, will show the helper
hints at the bottom of the windows. Default is true.
Miscellaneous settings
- VerboseApplicationOutput When set to true, the application output window's verbose setting will be set to true at application startup.
Default is true.
Name construction specific settings
Note: |
Some of the settings below discuss pluralization and singularization of names. Pluralization and Singularization takes place if a plug-in has been bound to the designer events for name pluralization and singularization. See Working with plug-ins for more details. |
- EnforcePascalCasingAlways When set to true, the setting MakeElementNamePascalCasing is always enforced. When set to false, the setting
MakeElementNamePascalCasing is enforced only when names for new elements are created. Default is true.
- EntityFieldNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the suffixes.
Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the entity field's name is equal to a
prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive. A new project will inherit this value.
Default is {}{}
- EntityNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the suffixes.
Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the entity's name is equal to a
prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive. A new project will inherit this value. Example:
prefix strip pattern tbl_ and suffix strip pattern _dev will form the strip pattern {tbl_}{_dev}.
Default is {tbl_}{}
- FieldMappedOnManyToManyPattern The pattern which is used to construct the names for Fields mapped on m:n relations. Pattern elements can be: {$StartEntityName} for the name of the start entity, {$EndEntityName} for the name of the end entity, {$IntermediateEntityName} for the name of the intermediate entity, $P or $S suffix to entity name macros to pluralize or singularize them (example: {$EndEntityName$P}), {$StartEntityFieldNames} for all the names of the fields of the relation in start entity, {$EndEntityFieldNames} for all the names of the fields of the relation in the end entity and any literal text. An element can be mentioned more than once. A new project will inherit this value.
- FieldMappedOnOneManyToOnePattern The pattern which is used to construct the names for Fields mapped on m:1 or 1:1 relations. Pattern elements can be: {$StartEntityName} for the name of the start entity, {$EndEntityName} for the name of the end entity, $P or $S suffix to entity name macros to pluralize or singularize them (example: {$EndEntityName$P}), {$StartEntityFieldNames} for all the names of the fields of the relation in start entity, {$EndEntityFieldNames} for all the names of the fields of the relation in the end entity and any literal text. An element can be mentioned more than once. A new project will inherit this value.
- FieldMappedOnOneToManyPattern
The pattern which is used to construct the names for Fields mapped on 1:n relations. Pattern elements can be: {$StartEntityName} for the name of the start entity, {$EndEntityName} for the name of the end entity, $P or $S suffix to entity name macros to pluralize or singularize them (example: {$EndEntityName$P}), {$StartEntityFieldNames} for all the names of the fields of the relation in start entity, {$EndEntityFieldNames} for all the names of the fields of the relation in the end entity and any literal text. An element can be mentioned more than once. A new project will inherit this value.
- FieldMappedOnRelatedFieldPattern The pattern which is used to construct the names for Fields mapped onto a related field. Pattern elements can be: {$RelatedEntityName} for the name of the related entity which contains the mapped related field and {$RelatedFieldName} for the name of the field in the related entity which is mapped by the field mapped onto a related field. You can also specify any literal text. An element can be mentioned more than once. A new project will inherit this value.
- MakeElementNamePascalCasing When set to true, all names of new entities, entity fields, typed views etc. will be properly
PasCal cased. This means that each character in the name is lowercased, except the first character after each word boundary ('_' or ' ')
and the first character. All spaces are always removed. When set to false, the name is left untouched, except for the first character,
which will always be UpperCase. A new project will inherit this value. Default is true.
- RemoveUnderscoresFromElementName When set to true, all single underscores in names of new entities, entity fields, typed
views etc. will be removed. When set to false, the name is left untouched. A new project will inherit this value. Default is true.
- StoredProcNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the
suffixes. Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the stored procedure's
name is equal to a prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive. A new project will inherit
this value. Example: prefix strip patterns pr_ and sp_ and suffix strip pattern _dev will form the strip pattern {pr_, sp_}{_dev}.
Default is {pr_, sp_}{}
- TypedViewFieldNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for
the suffixes. Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the typed view
field's name is equal to a prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive. A new project will
inherit this value. Default is {}{}
- TypedViewNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the
suffixes. Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the typed view's
name is equal to a prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive. A new project will inherit
this value. Example: prefix strip pattern vw_ and suffix strip pattern _dev will form the strip pattern {vw_}{_dev}.
Default is {vw_}{}
Output specific settings
- EncodingToUse The encoding to use for text files being written by the generator task performers. Use UTF8 if you use Visual
SourceSafe, as Visual SourceSafe can't handle unicoded textfiles. Default is UTF8
- PreferedNamespacePrefix The prefix that is inserted before the initial root namespace. Typically this is your company name,
where the initially root namespace is constructed from the catalog name. You can change this in the generator configuration window.
Do not include a '.' suffix. Default is empty string.
Project element creation
- AutoAssignTypeConverterToNewField When set to true, the Type Conversion Definitions in the project are searched for a matching Type
Converter with the new field and if found the Type Converter is assigned to the new field. Default is false. A new project will inherit this value.
Schema Element Retrieval specific settings
- ManualSelectSProcsFromSchema When set to true, the user has to select which stored procedure definitions to read from the
schemas in the active catalog(s). When set to false, all stored procedure definitions are read (unless stored procedure retrieval is
disabled in the create project/refresh catalog(s) dialogs) and added to the catalog in the project. For large schemas with a lot of
stored procedures which are probably never used in the LLBLGen Pro project, set this option to true. Default is false.
- RetrieveDBCustomProperties When set to true, all custom property data of the database objects a new project object is
based on will be copied to the object's Custom Properties.
Default is false. Set this to false if you've created your SqlServer database from MS Access or used a designer application which stored program
specific data in the 'extended properties' of SqlServer. 'False' will prevent this data from entering your project. The value of this setting is used to
set the checkbox for Custom Properties retrieval in the New project creation window.
- AutoDetermineSProcType SqlServer specific. When set to true, the SqlServer or Sybase ASE driver will determine the type of a
stored procedure (Retrieval or Action) automatically. When set to false, the user has to select the type for each stored procedure.
Automatic retrieval can take a long time plus it can have unwanted side effects like execution of non-DML SQL statements
(like sending an email). SELECT/INSERT/UPDATE/DELETE and DDL statements are never executed during type determination. When set to true,
ManualSelectSProcsFromSchema is ignored and always considered false. Default is true.
Note:
|
Please see the warning about automatic stored procedure meta data retrieval on SqlServer
to make sure you're using the right setting for your particular situation. It is set to true by default for convenience, though developers
should pay attention to the fact what this setting does and if they're unsure, set it to false.
|
Task performers specific settings
- CleanUpVsNetProjects When set to true, the VS.NET project file task performer will first remove all file references for files
from an existing VS.NET project file, before adding the files generated. For VS.NET 2005 projects, it will remove all files generated
by LLBLGen Pro, as these are marked with a Generator tag.
Note: |
Use with care as an old VS.NET 2003 project may contain references to files which aren't marked with LLBLGen Pro
specific XML elements/attributes, so all file references are removed, which thus also means that references to files you've added yourself to the
project are removed as well, which forces you to re-add the references to those files to the VS.NET project manually.
Projects created for VS.NET 2005 and with LLBLGen Pro v2.0 or higher do have the files marked as LLBLGen Pro generated and it's safe to use this setting with these projects. |
Default is false.
- ConvertNulledReferenceTypesToDefaultValue When set to false (default is true), an entity field which has a reference type (e.g. string) will return null / Nothing if the value for the field is null / Nothing. When set to true (default), the default value belonging to that reference type is returned. The default value for a type is produced by the generated class TypeDefaultValue. A new project will inherit this value.
- FailCodeGenerationOnWriteError When set to true (default is false), the code generator engines of LLBLGen Pro will throw a GeneratorAbortException to
terminate the code generation cycle if a write error occurs. A write error is generated when the target file exists and is readonly and failwhenexistent is false
for the executing task.
- GenerateNullableFieldsAsNullableTypes .NET 2.0 specific. This preference controls the setting of a new entity field if that field, when nullable, should be
generated as a field of type Nullable<T> / Nullable(Of T), instead of a field of a normal .NET type. Default is true.
- HideManyOneToOneRelatedEntityPropertiesFromDataBinding When set to true (default), LLBLGen Pro will generate Browsable(false) attributes on properties representing fields mapped onto m:1 or 1:1 relations, making the properties invisible for databinding. Setting this setting to false will make them show up as columns in some controls. A new project will inherit this value.
- LazyLoadingWithoutResultReturnsNew SelfServicing specific: when set to true (default), lazy loading functionality which fetches a m:1 or 1:1
related entity will return a new entity when the related entity to fetch is not found. When set to false, it will return null (Nothing).
- ShowTaskPerformerReport When set to true (default), LLBLGen Pro will show the task performer report in a modal dialog. The
report can be copied to the clipboard, with formatting, if desired. Default is true.
- StoreTimeLastGeneratedIntoProject When set to true (default: false), the time the last generation cycle for a project took place is stored inside the project. This will make the project 'changed' after every generation cycle, which could influence sourcecontrol behavior if you store the .lgp file in a sourcecontrol system. A new project will inherit this value.
- TdlEmitTimeDateInOutputFiles When set to true (default), the TDL code emitter will emit the time and date for <[Time]gt;
statement, otherwise nothing will be emitted for that statement. Set to false only if you need files to stay the same if they're not
effectively changed, for example for VSS. A new project will inherit this value. Default is true.
By clicking 'Save' the user preferences are saved into the file 'preferences25.xml' in the user's own Application specific folder at:
C:\Documents and Settings\
current user\Application Data\LLBLGen Pro
Project Properties
A project contains its own set of properties, some receive their initial value from the user preferences, others from the New Project wizard information.
To access the project properties, click with the right mouse button on the project node in the Project Explorer or select Project -> Properties... from the
menu. The dialog consists of three tabs: one for the project properties, one for the project's custom properties and one for the abbreviations for the project. Custom properties are name-value pairs
(name and value are both strings) which can be used in templates to generate project specific information. Abbreviations are name-value pairs which are used to resolve abbreviations in names (see below for more details on this). Below is an example of how the dialog looks like. The values shown aren't the default values per property. For the default value for a property setting, please see the specific property description below.
Project properties dialog, normal properties tab
Project properties dialog, custom properties tab
Project properties dialog, abbreviations tab
General settings
- Filename. The filename of the project. This filename is used when you save the project.
Catalog Refresher settings
These settings are inherited from the preferences and could be used to override a preference setting with the value specified in the project: the value 'Default' specifies that the value of the same setting in the Preferences should be used, the values True and False override the setting in the Preferences with resp. True and False.
Miscellaneous settings
- AdditionalTaskPerformerFolder If specified, LLBLGen Pro will look for taskperformer assemblies in this folder as well, besides the default taskperformer folder. Specify the folder with full path or if you want to make the path relative to the project location, specify the path as a relative path. A relative path starts with '.\' or with '..\' (without the quotes). If you don't want to use an additional folder, leave it empty.
- AdditionalTasksFolder If specified, LLBLGen Pro will look for *.tasks/*.platform/*.presets files in this folder as well, besides the default Tasks
folder. Specify the folder with full path or if you want to make the path relative to the project location, specify the path as a relative path. A relative
path starts with '.\' or with '..\' (without the quotes). If you don't want to use an additional folder, leave it empty.
- AdditionalTemplatesFolder If specified, LLBLGen Pro will look for templateGroups.config/*.language/*.templatebindings files in this folder as well,
besides the default Templates folder and the additional templates folder defined in the LLBLGen Pro config file. Specify the folder with full path or if you
want to make the path relative to the project location, specify the path as a relative path. A relative path starts with '.\' or with '..\' (without the
quotes). If you don't want to use an additional folder, leave it empty.
- AdditionalTypeConverterFolder If specified, LLBLGen Pro will look for assemblies with TypeConverter classes in this folder as well, besides
the default TypeConverterRootFolder folder defined in the LLBLGen Pro config file. Specify the folder with full path or if you want to make the
path relative to the project location, specify the path as a relative path. If you don't want to use an additional TypeConverter folder, leave it empty.
Note: |
Be aware that if you have type converters located in a folder specified in AdditionalTypeConverterFolder, and those type converters
refer to types also implemented in the type converter dlls, they can't be loaded by the .NET CLR when you load a project. If that's the case, you'll get
an exception when you try to load the project. To avoid these load errors, either place the type converters in the LLBLGen Pro's TypeConverters folder in the
LLBLGen Pro installation folder, or use an assembly load resolving file. |
- ProjectCreator The name of the creator of the project.
- ProjectName The name of the project.
- RetrieveDBCustomProperties When set to true, all custom property data of the database objects a new project object is based on will be
copied to the object's Custom Properties. See also user preferences for more details. A new project inherits this value from the preferences.
Name construction specific settings
- EnforcePascalCasingAlways When set to true, the setting MakeElementNamePascalCasing is always enforced. When set to false, the setting
MakeElementNamePascalCasing is enforced only when names for new elements are created. Default is true.
A new project inherits this value from the preferences.
- EntityFieldNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the suffixes.
Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the entity field's name is equal to a
prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive.
A new project inherits this value from the preferences.
- EntityNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the suffixes.
Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the entity's name is equal to a
prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive. Example:
prefix strip pattern tbl_ and suffix strip pattern _dev will form the strip pattern {tbl_}{_dev}.
A new project inherits this value from the preferences.
- FieldMappedOnManyToManyPattern The pattern which is used to construct the names for Fields mapped on m:n relations. Pattern elements can be: {$StartEntityName} for the name of the start entity, {$EndEntityName} for the name of the end entity, {$IntermediateEntityName} for the name of the intermediate entity, $P or $S suffix to entity name macros to pluralize or singularize them (example: {$EndEntityName$P}), {$StartEntityFieldNames} for all the names of the fields of the relation in start entity, {$EndEntityFieldNames} for all the names of the fields of the relation in the end entity and any literal text. An element can be mentioned more than once.
- FieldMappedOnOneManyToOnePattern The pattern which is used to construct the names for Fields mapped on m:1 or 1:1 relations. Pattern elements can be: {$StartEntityName} for the name of the start entity, {$EndEntityName} for the name of the end entity, $P or $S suffix to entity name macros to pluralize or singularize them (example: {$EndEntityName$P}), {$SingularEndEntityName} for the singular form of the name of the end entity, {$StartEntityFieldNames} for all the names of the fields of the relation in start entity, {$EndEntityFieldNames} for all the names of the fields of the relation in the end entity and any literal text. An element can be mentioned more than once.
- FieldMappedOnOneToManyPattern
The pattern which is used to construct the names for Fields mapped on 1:n relations. Pattern elements can be: {$StartEntityName} for the name of the start entity, {$EndEntityName} for the name of the end entity, $P or $S suffix to entity name macros to pluralize or singularize them (example: {$EndEntityName$P}), {$StartEntityFieldNames} for all the names of the fields of the relation in start entity, {$EndEntityFieldNames} for all the names of the fields of the relation in the end entity and any literal text. An element can be mentioned more than once.
- FieldMappedOntoRelatedFieldPattern The pattern which is used to construct the names for Fields mapped onto a related field. Pattern elements can be: {$RelatedEntityName} for the name of the related entity which contains the mapped related field and {$RelatedFieldName} for the name of the field in the related entity which is mapped by the field mapped onto a related field. You can also specify any literal text. An element can be mentioned more than once.
- MakeElementNamePascalCasing When set to true, all names of new entities, entity fields, typed views etc. will be properly
PasCal cased. This means that each character in the name is lowercased, except the first character after each word boundary ('_' or ' ')
and the first character. All spaces are always removed. When set to false, the name is left untouched, except for the first character,
which will always be UpperCase. A new project inherits this value from the preferences.
- RemoveUnderscoresFromElementName When set to true, all single underscores in names of new entities, entity fields, typed
views etc. will be removed. When set to false, the name is left untouched. A new project inherits this value from the preferences.
- StoredProcNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the
suffixes. Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the stored procedure's
name is equal to a prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive.
Example: prefix strip patterns pr_ and sp_ and suffix strip pattern _dev will form the strip pattern {pr_, sp_}{_dev}.
A new project inherits this value from the preferences.
- TypedViewFieldNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for
the suffixes. Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the typed view
field's name is equal to a prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive.
A new project inherits this value from the preferences.
- TypedViewNameStripPattern The pattern which contains two sections, enclosed in {}, one for the prefixes and one for the
suffixes. Add prefixes and suffixes to strip off by separating them by a comma. The first match is stripped. If the typed view's
name is equal to a prefix/suffix strip pattern, nothing is stripped off. Stripping is case insensitive.
Example: prefix strip pattern vw_ and suffix strip pattern _dev will form the strip pattern {vw_}{_dev}.
A new project inherits this value from the preferences.
Output specific settings
- ConnectionStringKeyName. The name for the key in the app.config file with which the connection string is stored.
- EncodingToUse. The encoding to use for output files generated for this project. A new project inherits this value from the preferences.
- RootNameSpace. The root namespace value which is initially chosen in the generator configuration window.
Project element creation
- AutoAssignTypeConverterToNewField When set to true, the Type Conversion Definitions in the project are searched for a matching Type
Converter with the new field and if found the Type Converter is assigned to the new field. Default is false.
Task performers specific settings
- AdapterDbSpecificSubFolderName Adapter specific. This value is the name for the subfolder in the destination folder in which
the generated database specific files are placed.
- AdapterDbGenericSubFolderName Adapter specific. This value is the name for the subfolder in the destination folder in which
the generated database generic files are placed.
- AdapterDbSpecificNamespaceSuffix Adapter specific. This value is the suffix appended to the root namespace for the database
specific generated code. Do not prefix this name with a '.', as that's added automatically by the code generator.
- AdapterDbSpecificProjectFileSuffix Adapter specific. This value is the suffix appended to the VS.NET project filename for
the database specific generated code.
- AdapterDbGenericProjectFileSuffix Adapter specific. This value is the suffix appended to the VS.NET project filename for
the database generic generated code.
- CleanUpVsNetProjects When set to true, the VS.NET project file task performer will first remove all file references for files
from an existing VS.NET project file, before adding the files generated. For VS.NET 2005 projects, it will remove all files generated
by LLBLGen Pro, as these are marked with a Generator tag.
Note: |
Use with care as an old VS.NET project may contain references to files which aren't marked with LLBLGen Pro
specific XML elements/attributes, so all file references are removed, which thus also means that references to files you've added yourself to the
project are removed as well, which forces you to re-add the references to those files to the VS.NET project manually.
Projects created for VS.NET 2005 and with LLBLGen Pro v2.0 or higher do have the files marked as LLBLGen Pro generated and it's safe to use this setting with these projects. |
Default is false. A new project inherits this value from the preferences.
- ConvertNulledReferenceTypesToDefaultValue When set to false (default is true), an entity field which has a reference type (e.g. string) will
return null / Nothing if the value for the field is null / Nothing. When set to true (default), the default value belonging to that reference type is
returned. The default value for a type is produced by the generated class TypeDefaultValue."
- FailCodeGenerationOnWriteError When set to true (default is false), the code generator engines of LLBLGen Pro will throw a GeneratorAbortException to
terminate the code generation cycle if a write error occurs. A write error is generated when the target file exists and is readonly and failwhenexistent is false
for the executing task. A new project inherits this value from the preferences.
- GenerateNullableFieldsAsNullableTypes .NET 2.0 specific. This preference controls the setting of a new entity field if that field, when nullable, should be
generated as a field of type Nullable<T> / Nullable(Of T), instead of a field of a normal .NET type. Default is true.
A new project inherits this value from the preferences.
- HideManyOneToOneRelatedEntityPropertiesFromDataBinding When set to true (default), LLBLGen Pro will generate Browsable(false) attributes on properties representing fields mapped onto m:1 or 1:1 relations, making the properties invisible for databinding. Setting this setting to false will make them show up as columns in some controls. A new project inherits this setting from the preferences.
- LazyLoadingWithoutResultReturnsNew SelfServicing specific: when set to true (default), lazy loading functionality which fetches a m:1 or 1:1
related entity will return a new entity when the related entity to fetch is not found. When set to false, it will return null (Nothing).
A new project inherits this value from the preferences.
- StoreTimeLastGeneratedIntoProject When set to true (default: false), the time the last generation cycle for a project took place is stored inside the project. This will make the project 'changed' after every generation cycle, which could influence sourcecontrol behavior if you store the .lgp file in a sourcecontrol system.
- TdlEmitTimeDateInOutputFiles When set to true (default), the TDL code emitter will emit the time and date for <[Time]gt;
statement, otherwise nothing will be emitted for that statement. Set to false only if you need files to stay the same if they're not
effectively changed, for example for VSS or other sourcecontrol system.
Abbreviation conversions
LLBLGen Pro supports the automatic conversion of abbreviation fragments in names into full name fragments using abbreviation-full word pairs defined per project. You can specify these
abbreviation-full word pairs in the 3rd tab of the Project Properties.
For example a field called 'Addr' or fields with 'Addr' in the name can be updated with 'Addr' being replaced with 'Address' so CustAddr will then become CustAddress, and if 'Cust' is also added to the abbreviations to become Customer, it will convert CustAddr into CustomerAddress. Abbreviations are stored inside the project file so everyone using the same .lgp file has the same abbreviations. They're not regular expressions, but simple Abbreviation - FullWord pairs. They're matched with fragments found during name processing. Fragments are elements separated by non-usable characters, space, underscore, a full word, or where an Uppercase/Lowercase change appears. So the string
AaBb_CCC Ddd has 4 fragments: Aa, Bb, CCC and Ddd.
The following rules apply:
- Abbreviations are added per project, in the project properties dialog, and should be inserted right after the project has been created and before the entities are added to the project.
- They're used when names have to be created for entities, typedviews and stored procedures, and fields for entities, typedviews and for parameters for stored procedure calls.
- The abbreviations are evaluated during name processing and before a FieldMappedOn*Pattern has been applied and also before casing rules have been applied.
- All abbreviations are case insensitive.
- Abbreviations can be used as well to specify specific casing. For example the abbreviation - full word pair: ID - ID will make sure that all ID fragments found won't be cased to Id, but will kept as ID.
It's also possible to export/import abbreviations to/from textfiles. These textfiles should have at each line the abbreviation and the full word separated by a TAB so example: addr
TABAddress
CRLF
You can import/export the abbreviations on the Abbreviations tab in the Project Properties.