About EntityDAC

ORM for Delphi with LINQ support.

EntityDAC provides a framework that allows you to perform object-relational mapping of database objects to Delphi classes with full support for encapsulation, inheritance, polymorphism and other OOP features. To retrieve data from a database, LINQ is used as a database independent query engine. In addition, it includes a feature-rich ORM modeling tool that allows you to create and edit ORM models visually and generate Delphi entities automatically.

Database-First, Model-First and Code-First development
There are several approaches to database application development. Database-First - a database is developed first, then a data model and application classes are generated on the basis of the existing database. Model-First - a data model is developed first in a model developer tool, then a database and application classes are generated by this model. Code-First - in this case, application classes are the original source, on the basis of which a database can be generated, as well as a model, if necessary. When developing applications using EntityDAC, you will be able to use all three ways.

Visual ORM Model Designer with Code generation
Entity Developer allows you to create and edit ORM models visually, without typing a line of XML code or manually describing class attributes in Delphi code. It supports the creation of all kinds of mapping, such as table splitting, mapping entity to several tables, complex types, inheritance hierarchies, etc. Code generation is very flexible due to using T4-like templates, allowing virtually anything you may want for code generation, and you may even create your own templates for other programming languages.

LINQ Queries
Using ORM when developing your applications must not only accelerate development of the application itself, but also unify the application code and make applications independent of the specifics and syntax of the SQL database for which it is developed, this allows the support of multiple databases in your application with no effort. For this reason Language Integrated Query (LINQ) is used in EntityDAC as a query language. Using LINQ also significantly simplifies writing and further support of queries, the Code completion Delphi engine is used when typing LINQ keywords, class names, their attributes, etc. and in the same way, LINQ queries syntax check is performed at the stage of application compilation.

Class Mapping
Object-relational mapping of database tables to Delphi classes can be performed not only to classes inherited from a basic TEntity class, but to custom classes inherited from TObject as well. Such an approach allows EntityDAC to be used for the development of new applications, as well as simply introducing ORM to existing projects. In addition, different mapping methods are supported: code mapping, attribute mapping and XML mapping.

Entity and Query Cache
To increase application performance, EntityDAC allows cache metadata, all entities loaded from the database, LINQ queries, and much more. Such caching avoids multiple loading of the same data and vastly improves performance in comparison to using the standard Data Access Components.

EntityDAC Standard Features

Entity Developer

  • Visual ORM Model Designer

Mapping

  • Code-mapped Entities
  • Attribute-mapped Entities
  • XML-mapped Entities
  • Attribute-mapped Objects
  • Mapping Customization

Metadata

  • Ordinal Meta Types
  • Complex Meta Types 
  • Meta Type Inheritance
  • Generators
  • One-To-Many Associations
  • One-To-One Associations
  • Many-To-Many Associations 

Data Context

  • Get Single Entity
  • Get Entity List
  • Save Entity
  • Submit and Reject All Changes
  • Direct SQL Execution
  • Deferred Relation Load

LINQ

  • LINQ queries in Run-Time
  • LINQ Code Insight in IDE
  • Binding to Controls
  • Run-Time Live-Binding

Binding to Data-Aware Controls

  • Run-Time Binding

Design-Time Components

  • TEntityConnection 
  • TEntityXMLModel 
  • TEntityContext

Data-Aware Components

  • TEntityDataSource
  • TEntityDataSet 

Devart Data Providers

  • UniDAC Data Provider
  • ODAC Data Provider
  • SDAC Data Provider
  • MyDAC Data Provider
  • IBDAC Data Provider 
  • PgDAC Data Provider
  • LiteDAC Data Provider

Standard Data Providers

  • ADO Data Provider
  • IBX Data Provider
  • dbExpress Data Provider
  • FireDAC Data Provider

Third-Party Data Providers

  • Several additional data providers in Demos

EntityDAC Professional Additional Features

Data Context

  • Create and Drop Databases

LINQ

  • LINQ queries in Design-Time

Binding to Controls

  • Design-Time Live-Binding

Binding to Data-Aware Controls

  • Design-Time Binding

Data-Aware Components

  • TEntityTable
  • TEntityQuery