- 
                Notifications
    You must be signed in to change notification settings 
- Fork 0
The Type System
Some of CodeModeler design concepts are strongly typed. Those concepts are referred to Typed Objects Concepts:
- 
Entity and View Properties 
- 
Method and Rule Parameters. 
CodeModeler type system is a composite one, because it must adapt to the underlying target type systems:
- 
the .NET type based on the Common Language Runtime type system 
- 
the Persistence type based on .NET’s System.Data.DbType enumeration 
- 
the target producers’ Persistent type (SQL Server, MySQL, etc.) 
Here is a summary of CodeModeler types and their equivalent types:
| CodeModeler Type and alisases | .NET Type | Persistence Type | 
|---|---|---|
| bool boolean, bit | System.Boolean | DbType.Boolean | 
| byte | System.Byte | DbType.Byte | 
| char | System.Char | DbType.Byte if “Is Persistence   Unicode” is set to false DbType.Int16 if “Is Persistence Unicode” is set to true | 
| currency money, cost, price | System.Decimal | DbType.Currency | 
| datetime date, time | System.DateTime | DbType.DateTime | 
| double real | System.Double | DbType.Double | 
| single float | System.Single | DbType.Single | 
| object any, anyvalue | System.Object | DbType.Object | 
| guid uniqueidentifier | System.Guid | DbType.Guid | 
| decimal | System.Decimal | DbType.Decimal | 
| sbyte | System.SByte | DbType.Sbyte | 
| elapsedtime timespan | System.TimeSpan | DbType.DateTime | 
| Int int32, integer | System.Int32 | DbType.Int32 | 
| long int64 | System.Int64 | DbType.Int64 | 
| short int16 | System.Int16 | DbType.Int16 | 
| uint uint32 | System.UInt32 | DbType.UInt32 | 
| ulong uint64 | System.UInt64 | DbType.UInt64 | 
| ushort uint16 | System.UInt16 | DbType.UInt16 | 
| byte | System.Byte | DbType.Byte | 
| xml | System.String | DbType.AnsiString if “Is Persistence   Unicode” is set to false DbType.String if “Is Persistence Unicode” is set to true Note: some persistence producers may handle this type specifically. | 
| string text | System.String | DbType.AnsiString if “Is   Persistence Unicode” is set to false DbType.String if “Is Persistence Unicode” is set to true | 
| email | System.String | DbType.AnsiString if “Is   Persistence Unicode” is set to false DbType.String if “Is Persistence Unicode” is set to true | 
| password | System.String | DbType.AnsiString if “Is   Persistence Unicode” is set to false DbType.String if “Is Persistence Unicode” is set to true | 
| url hyperlink | System.String | DbType.AnsiString if “Is   Persistence Unicode” is set to false DbType.String if “Is Persistence Unicode” is set to true | 
| richstring richtext | System.String | DbType.AnsiString if “Is   Persistence Unicode” is set to false DbType.String if “Is Persistence Unicode” is set to true | 
| data byte[], binary | System.Byte[] | DbType.Binary | 
| file attachment, document | CodeModeler Runtime provided | DbType.Binary | 
| blob largebinary | CodeModeler Runtime provided | DbType.Binary | 
| film video | CodeModeler Runtime provided | DbType.Binary | 
| image picture, photo | CodeModeler Runtime provided | DbType.Binary | 
| audio sound | CodeModeler Runtime provided | DbType.Binary | 
Beyond the types above, CodeModeler also supports .NET types and types defined in the model itself:
| CodeModeler type | .NET Type | Persistence Type | 
|---|---|---|
| Full .NET type name | The specified type name | DbType.Object | 
| Model defined entity or entity collection | The entity or collection .NET type name | Depends on the relation implicitly defined | 
| Model defined enumeration | The generated Enum .NET type name | The enumeration's DbType (DbType.Byte, DbType.SByte, DbType.Int16, DbType.UInt16, DbType.Int64, DbType.UInt64, DbType.UInt32, or DbType.Int32). | 
| User Type | The specified type name | The specified persistence type | 
A UserType is a CodeModeler concept, just like entity, enumeration, property, etc. A user type has the following characteristics:
- 
Name. This is how the user type is referenced. 
- 
Type Name: The user type’s type name. It must be another CodeModeler type name this user type “derives from”. 
- 
Other persistence related properties (“DbType”, “Is Nullable”, “Default Value”, etc.). 
- 
A list of rules. 
Note: a UserType can be also used to override another type. You must name the user type with the same name as the type you want to override.
- Introduction
- Architect Guide
- Concepts
- Using Visual Studio
- Overview
- Creating a CodeModeler Project
- Visual Environment
- Project Hierarchy
- Design Surface
- Customizing Design Surfaces
- Ribbon Bar
- Property Grid
- Member Format Expressions
- Model Grid
- Method Editor
- View Editor
- Instance Editor and Grid
- Resources Editor
- Inferred Model Viewer
- Building
- Project Physical Layout
- Source Control Support
 
- Generating
- Aspect Oriented Design (AOD)
 
- Developer Guide
- The Business Object Model (BOM)
- CodeModeler Query Language (CMQL)
- Starting Guide - Tutorial
 
- Upgrade From CFE