Entity Developer vs Entity Data Model Designer
While creating and developing our ORM designer, we strived to improve user experience and productivity along with providing best possible support for more ORM mapping features. Now Entity Developer provides a number of benefits, not available in Visual Studio Entity Data Model designer, that increase your productivity and supports many Entity Framework mapping cases, not supported in EDM designer. The following sections and tables provide a detailed feature comparison between Entity Developer and EDM Designer.
These tables list Entity Developer's features related to Entity Framework v1, v4, v5, and v6. Visual Studio does not offer a visual model designer for Entity Framework Core, as it uses code-only mapping. You can find more information about Entity Framework Core support in Entity Developer on this page.
Mapping and Inheritance
Entity Developer supports all kinds of Inheritance hierarchies and additional mapping customization ways.
Feature | Entity Developer | EDM designer |
---|---|---|
Table-per-hierarchy (TPH) mapping | ||
Table-per-type (TPT) mapping | ||
Table-per-concrete type (TPC) mapping | ||
Unmapped abstract types | ||
Table splitting | 1 | |
Entity splitting | ||
QueryViews | ||
Model-defined functions | ||
Complex types | ||
Enum types2 | ||
Powerful Inheritance Editor dialog box |
1 Visual Studio 2008 partially supports table splitting, however you need to edit the model XML manually to create such mapping.
2 Enum types are supported since Entity Framework v5, therefore they are supported in edmx designer since Visual Studio 2012, and in Entity Developer for Entity Framework v5 and higher models only.
Design Approaches
Entity Developer supports both Model-First and Database-First approaches. Unlike Entity Data Model designer, it allows you even to change approaches in the middle of the development process.
Feature | Entity Developer | EDM designer | |
---|---|---|---|
Database-First |
|||
Database-First approach support | |||
Wizard for generating model from a database | |||
Wide customization of naming rules for model objects | |||
Customization of data type mapping rules | |||
Adding new model objects by dragging database objects from Database Explorer | |||
Automatic entity key generation from:
|
|
|
|
Table-Valued Functions support | |||
Support for spatial data-types for DbGeography and DbGeometry1 | |||
Possibility to add database objects that produce invalid model objects to the model. These objects are highlighted as invalid, and can be fixed manually | |||
Database object comments are retrieved from the database and used as the Documentation property values for model objects (and are used for XML comments in the generated code) | |||
Ability to choose database objects to be added to the model when updating model from the database | |||
Ability to choose database objects to be deleted from the model when updating model from the database, if there are no such objects in the database | |||
Ability to choose database object changes to be applied to the model objects when updating model from the database (ability to keep manual changes) | |||
Retaining the list changes that were not selected in the Update From Database wizard | |||
Ability to automatically remove the schema name for database objects, added to the model | |||
Model-First |
|||
Model-First approach support | |||
Mapping Synchronization. With mapping synchronization, changes to the conceptual model are automatically applied to its mapping and storage part | |||
Wide customization of naming rules for database objects | |||
Table-per-hierarchy (TPH) mapping | |||
Table-per-type (TPT) mapping |
|
|
|
Table-per-concrete type (TPC) mapping | |||
Ability to use different kinds of inheritance hierarchy in the same model, and to set it separately for each hierarchy | |||
Generation of DDL script for database object creation, based on the model objects | |||
Synchronization of database with the model with an ability to apply changes selectively | |||
Ability to alter existing database tables preserving their data instead of recreating them | |||
Retaining the list of changes that were not selected in the Update To Database wizard | |||
The ability to use Documentation property values of model objects as comments for the corresponding database objects | |||
Automatic storage and mapping generation based on the conceptual model |
1 Spatial data types are supported since Entity Framework v5, therefore they are supported since Visual Studio 2012, and in Entity Developer for Entity Framework v5 and higher models only.
Large model support
Entity Developer offers several features that are very useful for working with large models containing hundreds of entities using both Database-First and Model-First approaches.
Feature | Entity Developer | EDM designer |
---|---|---|
Multiple diagrams for a model | ||
The ability to split a model into several diagrams manually or automatically when creating it using Database-First approach | ||
Search for an object on the current diagram | ||
Search for an object on all model diagrams, where it is present, even if they are closed | ||
Automatic navigation to the object, selected in the Model Explorer, on the diagram and vice versa | ||
Diagram Overview toolwindow | ||
Fast generation of a large model when using Database-First approach because of taking into account the specific functionality of each database server | ||
Built-in ability to enable view pregeneration for speeding up the first query execution in run-time |
Productivity
Entity Developer provides powerful features to automate or speed-up common model editing operations. Really intuitive Entity Developer drag-n-drop allows you to perform actions, which can take minutes in Entity Data Model designer, in a couple of clicks. Advanced model refactoring features go even further and allow such operations as creating a TPC inheritance hierarchy from a group of classes or extracting common properties from several classes to a complex type to be performed almost instantly.
Feature | Entity Developer | EDM designer |
---|---|---|
Model refactoring features: |
||
Creating Table-per-type (TPT) inheritance |
|
|
Creating Table-per-concrete type (TPC) inheritance |
|
|
Extracting ComplexType, based on common properties of some classes |
|
|
Using existing ComplexType |
|
|
Dragging a group of properties from an entity to a diagram with automatic: |
||
base class creation |
|
|
descendant class creation |
|
|
new class creation (table-splitting) |
|
|
complex type creation |
|
|
inheritance from an existing base class with the corresponding set of properties |
|
|
mapping a new property of an existing complex type with the corresponding set of properties instead of the dragged properties |
|
|
Other productivity features: |
||
Reordering properties in an entity/complex type/storage table/enum with drag-n-drop | ||
Dragging properties between different entities/complex types/enums | ||
Dragging objects from Database Explorer to the diagram for creating corresponding objects in both storage and conceptual models and their mapping | ||
Dragging objects from Database Explorer to the storage part in the Model Explorer for creating corresponding objects storage model only | ||
Dragging objects from the storage part to the diagram for creating the corresponding objects in the conceptual part and their mapping | ||
Dragging an entity to the Entity Developer query editor for creating an Entity SQL or LINQ to Entities query |
Editable Storage Model
Entity Developer allows you to edit storage model in the GUI. In Entity Data Model designer you should edit XML manually for most operations.
Feature | Entity Developer | EDM designer |
---|---|---|
Deleting storage model objects | ||
Ability to quickly navigate from a conceptual model object to the corresponding storage model object | ||
Access to a storage model object from the conceptual model object editor of the corresponding conceptual object | ||
Optional automatic deletion of a storage object when the corresponding conceptual model object is deleted | 1 | |
Editing Defining Query | ||
Creating a storage entity based on the Defining Query | ||
Creating a conceptual model entity and mapping for it based on a storage model entity | ||
Command Text editing | ||
Creating a storage model function with its parameters, based on a SQL query or PL/SQL block |
1 Supported only for entities.
Associations Support
Feature | Entity Developer | EDM designer |
---|---|---|
Independent Associations support | ||
Foreign Key Associations support1 | ||
Referential Constraint editor |
|
|
Many-to-many associations detection with automatic removing of the intermediate table from the conceptual part of the model | ||
Ability to disable many-to-many associations detection in order to preserve the intermediate table in the conceptual part of the model |
1 This functionality is not supported by Entity Framework v1, therefore it is supported since Visual Studio 2010 and higher, and in Entity Developer for Entity Framework v4 and higher models only.
Stored Procedure Support
Entity Developer provides wide support for different kinds of stored procedures, and it considers specificity of different DBMSs.
CUD Mapping (Mapping Entity CREATE/UPDATE/DELETE Operations to Stored Routines)
Feature | Entity Developer | EDM designer |
---|---|---|
Stored procedure mapping | ||
Mapping CUD operations to stored functions | 1 | |
Mapping procedures/functions returning Oracle CURSOR | 1 | |
Ability to create a rows affected parameter | 1 | |
Ability to map result columns to entity or complex type properties2 |
1 You need to edit the model XML manually to create such mapping in Entity Data Model designer.
2 This functionality is not supported by Entity Framework v1, therefore they are supported since Visual Studio 2010 and higher, and in Entity Developer for Entity Framework v4 and higher models only.
Function Import and Code Generation
Feature | Entity Developer | EDM designer |
---|---|---|
Stored procedures that don't return anything | 1 | |
Stored functions returning a scalar value as their return value | 2 | |
Stored procedures, returning values through their OUT parameters | ||
Stored functions, returning values through their OUT parameters | 2 | |
Stored procedures or functions, returning both a resultset and other values through their OUT parameters | 3 | |
Transparent support for stored routines, returning Oracle CURSORs | 4 | |
Creating a complex type from a stored procedure resultset | 5 | |
Creating a complex type from a stored function resultset, that is returned as the return value | ||
Stored procedures, returning a collection of entities | ||
Stored functions, returning a collection of entities | 6 | |
Stored procedures returning a collection of complex types | ||
Stored functions, returning a collection of complex types | 6 | |
Stored procedures or functions, returning several resultsets as several collections of entities | ||
Stored procedures or functions, returning several resultsets as several collections of entities and/or complex types |
1 Function Import can be created, but method code generation is not supported.
2 Method code generation is not supported, and Function Import cannot be created.
3 Function Import is supported for store procedures, and code generation is partially supported, however out parameter values are not returned.
4 Oracle CURSORs can be used only after manual model XML editing.
5 This feature is supported by Entity Data Model designer only for SqlClient. Use Entity Developer for dotConnect data providers .
6 You need to edit the model XML manually to create such mapping in Entity Data Model designer.
Design-time Model Validation
Entity Developer always validates your model while you are editing it and highlights errors on diagrams. All errors and warnings automatically appear in the Error List window.
Feature | Entity Developer | EDM designer |
---|---|---|
Background validation after modifying model | ||
Highlighting invalid objects on diagrams | ||
Warnings about unused complex types | ||
Warnings about unused storage model objects |
Testing Model by Retrieving Data and Executing Queries While Designing Model
Entity Developer allows retrieving and editing data from database tables, retrieving data from entities to validate the mapping and testing your model with LINQ to Entities and Entity SQL queries while designing your model. You don't need to compile your application or create any test code for it.
Feature | Entity Developer | EDM designer |
---|---|---|
Editing data of database tables from Database Explorer | ||
Retrieving data for model entities to validate their mapping | ||
Editor for creating and executing Entity SQL and LINQ to Entities queries with the ability to edit and save them for the future use |
Diagram Features
Feature | Entity Developer | EDM designer |
---|---|---|
Selection driven highlighting | ||
Capability for changing the shape color | ||
Displaying complex types on diagrams with complex type specific display options | ||
Displaying enum types on diagrams with enum type specific display options 1 | ||
Setting diagram display options in a convenient dialog box on per-diagram level | ||
Setting default diagram display options and diagram object behaviour options for all new diagrams | ||
Sticker notes for adding comments to diagrams | ||
The ability to add a stamp, specifying diagram author, company, version, copyrights, project name, and date, to a diagram | ||
Skins to change the diagram appearance |
1 Supported only in Entity Framework v5 and higher.
Code Generation
Feature | Entity Developer | EDM designer |
---|---|---|
T4 template-based code generation with custom template support | ||
Refactoring - renaming of model objects, properties, changing namespaces in current Visual Studio solution | ||
Flexible customization of the generated code output, including specifying project and project folder or the file system path for output | ||
Ability to specify custom .NET attributes, that will be present in the generated code, for model objects | ||
Ability to generate code for each entity class in a separate file | ||
Ability to generate an additional file with a partial entity class for extending it manually, that is not rewritten when generating code, for each entity class | ||
Ability to specify validation framework to validate the properties values of generated classes | ||
Convenient built-in template editor with syntax highlighting, intellisense, navigation to declaration and definition, navigation between linked templates, etc. | ||
Ability to declare and set extended properties of model objects at design-time | ||
Predefined templates for code generation: |
||
strongly-typed ObjectContext class and persistence-aware classes (EntityObject) | ||
strongly-typed DbContext class and persistence ignorant entity classes (DbContext) | 1 | |
strongly-typed ObjectContext class and self-tracking entity classes (Self-Tracking) | 2 | |
strongly-typed ObjectContext class and classes with persistence ignorance (POCO) | 2 | |
Repositories and a Unit of Work (Repository And Unit of Work) | 3 | |
Data Transfer Object (DTO) classes (Data Transfer Object) | ||
Data Annotations Metadata classes and data annotation attibutes for entity classes and properties (Data Annotations Metadata) | ||
WCF RIA Services domain class (WCF RIA Domain Service) | 4 |
1 For Visual Studio 2010 should be downloaded separately as a NuGet package.
2 Should be downloaded separately as a NuGet package.
3 Should be downloaded separately as a NuGet package, and has much less powerful functionality than the corresponding Entity Developer template.
4 Visual Studio provides the WCF RIA Services domain class via a wizard instead of a template.
Other Features
Feature | Entity Developer | EDM designer |
---|---|---|
Ability to copy model objects and to paste them to another model together with their mapping and the corresponding storage model objects | ||
Convenient editor dialog boxes for all the model objects, their mapping, and settings | ||
Entity Framework Core support | ||
Automatic Entity Framework 6 provider registration | 1 | |
Automatic download and installing of the EntityFramework NuGet package. | ||
Automatic check for a new version | ||
More comprehensive documentation | ||
Context help with F1 | ||
First-class user support |
1 In order to work with dotConnect Entity Framework 6 providers in EDM Wizard you should register them manually as described in our blog post.