EntityDAC - ORM for Delphi with LINQ support

EntityDAC is an ORM for Delphi with LINQ support. It provides a powerful framework that allows 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, there is a feature-rich ORM modeling tool available – Entity Developer, that allows to create and edit your ORM models visually, and generate Delphi entity classes by this model automatically.


Database-, Model-, Code-First Development

Database-First, Model-First & 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 the three ways.

Visual ORM Designer

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 manual describing class attributes in Delphi code. It supports 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

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, that will allow to support multiple databases in your application with no effort. Therefore, Language Integrated Query (LINQ) is used in EntityDAC as a query language. Using LINQ also significantly simplifies writing and further support of queries, since, at this, 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

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 form TObject as well. Such an approach allows using EntityDAC for development of new applications, as well as simply introduce ORM to already existing projects. In addition, different mapping methods are supported: code mapping, attribute mapping and XML mapping.

Entity & Query Cache

Entity & Query Cache

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



ORM for Delphi with LINQ Support