Firebird

Requirements

Firebird support relies on the Firebird ADO.NET Client, available here. To be able to create a model from an existing Firebird database, you have to have access to a Firebird server instance, version 1.5 or higher.

Supported features

Feature Supported
Minimal database version Firebird v1.5. Dialect 3 only.
Database types All built-in types
User defined types No
Foreign key constraints Yes
Primary key constraints Yes
Unique constraints Yes
Check constraints No
Default values Yes
Unique indexes No
Tables Yes
Views Yes
Stored Procedures Yes
Table Valued Functions No
(System versioned) Temporal tables No
Synonyms No
Cascade delete rules Yes
Cascade update rules Yes
Identity fields Yes
System sequences No
Schema based sequences Yes
Multiple catalogs per project No
Multiple schemas per catalog No
Linked servers No

Type mappings

Below you'll find the two type mapping tables used by the Firebird driver of LLBLGen Pro. One is used for Database First development, the other is used for Model First development. In case of Model First development, you can add your own type shortcuts to define a different target database type, in case the default mappings aren't what you need in a particular case.

Global model-first type overruling

For Model first, there are often multiple database types defined per .NET Type and a given filter. To prefer one over the other on a global level, please look at the following settings in the Relational model data element construction section of the Project Settings:

  • Prefer natural character types
  • Prefer decimal over currency types
  • Prefer variable length types

Database first type mappings

You can control the .NET type during reverse engineering in database first development by defining Type Conversions in the Project Settings, which are based on Type Converters.

Database type .NET Type
Array System.Array
Blob System.Byte[]
Boolean System.bool
Char System.String
Date System.DateTime
Decimal System.Decimal
Double System.Double
Float System.Single
Guid System.Guid
Int16 System.Int16
Int32 System.Int32
Int64 System.Int64
Numeric System.Decimal
Text System.String
Timestamp System.DateTime
Time System.TimeSpan
VarChar System.String

Model first type mappings

If specified, the filter is combined with the .NET type to determine the database type. The elements length, precision and scale are the max. length, precision and scale of an entity field with the particular .NET Type. For instance a field with type System.String, max. length set to 50, will with all defaults enabled, a database type of VarChar(50).

If a controlling setting is specified, that setting has to be set to the specified value (in the Relational model data element construction section of the Project Settings) to make the designer select that database type.

.NET Type Filter Database type Controlling setting and value
System.Bool Boolean
System.Byte[] Blob
System.DateTime Date
System.Decimal Decimal(precision, scale) Prefer decimal over currency types set to true
System.Double Double
System.Guid Guid
System.Int16 Int16
System.Int32 Int32
System.Int64 Int64
System.Single Float
System.String 0 < length < 32768 Char(length) Prefer variable length types set to false
System.String 0 < length < 32768 VarChar(length) Prefer variable length types set to true
System.String length==0 or length >= 32768 Text
System.TimeSpan Time

Supported target frameworks

The following target frameworks are supported with Firebird:

  • LLBLGen Pro Runtime Framework
  • Entity Framework
  • Entity Framework Core
  • NHibernate