There are two ways of creating ORM models - Model-First approach and Database-First approach. Entity Developer supports both
approaches for designing Entity Framework, LinqConnect, NHibernate, Telerik Data Access, and LINQ to SQL
Model First in EDM Designer in Visual Studio 2010 - 2017
Model-first approach supposes creating entity model (its conceptual part), and then
generating storage, mapping, and DDL for creating a database schema, based on the
storage part of the model. It was implemented in that way in Visual Studio 2010 and later.
However, the database rarely can be created at once, the model often needs to be
changed after the database was created. But dropping and re-creating the database
is not a choice, because the database may already contain data. Entity Developer
solves this problem with Update Database feature.
Update to Database Wizard generates Update script, that makes only necessary changes
to the existing model database and retains the data if possible. The database does
not need to be re-created. The wizard displays the tree of the changed objects and
their changes, allowing you to choose which objects need to be synchronized, specify
the renamed objects, etc. Even changes inside entity are detected and result in
ALTER statements, the table doesn't need to be dropped and created again.
Entity Developer allows flexible tweaking for the generated names of the tables
and columns. You may configure removing and adding of prefixes and suffixes, case
and pluralization, etc.
However, even with Update to Database Wizard, Visual Studio implementation of Model-First
approach does not provide full control over storage and mapping parts of the model.
You cannot manually change column data type, rename storage tables, etc.
To solve the above-mentioned Model First approach problems, Entity Developer offers
mapping synchronization - the further Model-First approach improvement.
With mapping synchronization, changes to the conceptual model are automatically
applied to its mapping and storage part. For example, when you add a class to the
conceptual part, a corresponding table is created in the storage part, and the class
is automatically mapped to this table.
When you add a property into your conceptual model, the corresponding column is
created in the storage part. It's data type will be determined by the type of the
property in the conceptual part and its facets. Change them in the Properties window
or Property Editor, and the corresponding data type changes of the storage part
column will be applied. Default values of data type facets for different property
types can be set in the model settings.
Even the most complex conceptual part changes are supported - complex types, many-to-many
associations, complex hierarches. All these changes can be automatically reflected
in the storage part. However you may make manual changes to the storage part, and
they will be preserved when editing conceptual part. With Entity Developer you may
create entities from SELECT statements in your storage (Defining Query), that cannot
be used with Visual Studio 2010 Model-First implementation.
Entity Developer allows you to mix Model-First and Database-First approaches when
designing your model. With Update to Database and Update from Database wizards you
can easily synchronize your model and database in any direction. For example, you
may generate model from the database, then edit it, and apply these changes to the
database with Update to Database Wizard.
You can use mapping synchronization with models that were generated from database
with Database-First approach. You just need to enable automatic synchronization
of the storage part and mapping of the model with its conceptual part in the Model
Settings dialog box.
While Entity Framework models have explicit storage parts, LINQ models don't have
the one. Entity Developer considers the Source property of entities and Source and
Server Data Type properties of entity columns as the storage part. Source property
specifies the corresponding table or column name in the database, and Server Data
Type property specifies the corresponding column data type.
Model Initialization Settings
To automate Model-First development even more, Entity Developer allows you to specify
a default set of properties to be added to each new entity in the model automatically.
The properties and all their parameters can be specified in the model settings.
Visual Studio 2008 Support
Though EDM designer in Visual Studio 2008 does not support Model-First natively,
Entity Developer allows you to use Model-First approach with Visual Studio 2008 and
Entity Framework v1.