Entity Developer 6.8 is released!

Discussion of open issues, suggestions and bugs regarding Entity Developer - ORM modeling and code generation tool
Locked
Devart
Site Admin
Posts: 3974
Joined: Tue 26 Oct 2004 13:51

Entity Developer 6.8 is released!

Post by Devart » Thu 18 Jun 2020 15:28

Dear users,

Devart is delighted to introduce the release of Entity Developer 6.8. The new version introduces support for preview versions of Entity Framework Core 5.0 and .NET 5.0, adds ability to generate C# 8 nullable reference types and configure collection navigation properties, improves support for stored procedures, for NuGet and third-party providers, and many more.

EF Core 5 and .NET 5 Support

The new version of Entity Developer supports EF Core 5 and .NET 5 as of EF Core 5 Preview 5. When new EF Core 5 versions are available, we will update its support in Entity Developer. Please note, however, that EF Core 5 support for .NET Standard 2.1 and .NET Core 3.x is fully implemented in all Entity Developer versions (Visual Studio 2019 add-in, standalone application, and console application). However, as for target framework .NET 5 for EF Core 5 model, we don’t recommend using Visual Studio-integrated Entity Developer. It’s better to use standalone or console Entity Developer.

C# 8 Nullable Reference Types

C# 8, which can be used for .NET Standard 2.1 and .NET Core 3.0/3.1 projects, has a hugely important feature – Nullable Reference Types. The new version of Entity Developer adds the ability to generate Nullable Reference Types for entity properties, which is controlled by the new "Nullable Reference Types" property of templates for EF Core, EF6 and NHibernate.

Collection Navigation Properties

Entity Developer 6.8 implements an ability to select a collection type for navigation properties, and which non-abstract type to use for property initialization (or don’t perform it at all). This feature is implemented for Entity Framework and Entity Framework Core with the template properties "Collection Property Type" and "Collection Initialization Type".

DEFAULT Column Values

Entity Developer 6.8 allows configuring code generation for default column values for Entity Framework, EF Core, NHibernate and Telerik Data Access ORMs. For this the "Primitive Default Value Generation" property was added to templates for these ORMs. It allows you to specify whether to add default value generation in the constructor for literals, for both literals and expressions, or not to add at all.

The behavior for old models stays the same (add default value generation for both literals and expressions), but the new models will have a different behavior by default. Default value generation will be added only for literals in the new models by default.

Stored Procedure Result Sets and Complex Types

When generating a model from a database, console Entity Developer 6.8 now can import stored procedures and functions to the model.

Optionally, it can even execute stored procedures for obtaining metadata of their result sets and adding corresponding complex types to the model. You can specify, which procedures it is allowed to execute in the --Execute parameter.

We have also improved stored procedure import in Entity Developer as a standalone application and as Visual Studio add-in. In the new version, users will get less dialog boxes when importing them, and they will be able to configure stored procedure execution and adding complex types to the diagram in model settings.


You can also see our blog article to read about these and other improvements in more details.

Here is the complete list of Entity Developer 6.8.1019 features:
  • The new Primitive Default Value Generation property is added to EF, EF Core, NHibernate, Telerik Data Access templates to determine whether to generate initialization for a primitive property based on database DEFAULT column value
  • The new property "Nullable Reference Types" is added to C# templates of EF, EF Core, NHibernate models to specify whether C# 8 nullable reference types and non-nullable reference types must be generated
  • The code generation of assigning DateTime.Now to the DateTime property mapped to the MySQL datetime column with the default value CURRENT_DATE or CURDATE() in EF, EF Core, NHibernate models is supported when Primitive Default Value Generation=LiteralOrExpression (MySQL Connector/Net)
  • The ability to search for available System.Data.SQLite (with SQLite.Interop.dll dependency) and FirebirdSql.Data.FirebirdClient providers in local NuGet cache is implemented in a standalone and console Entity Developer for Entity Model and NHibernate Model
  • Console Entity Developer improvements:
    • Import of stored procedures and functions via Create-Model command is supported
    • The new options --Procedures and --Functions are added to Create-Model command for filtering stored procedures and functions; by default all procedures/functions are imported
    • The new option --Execute is added to Create-Model command for executing procedures/functions to get metadata from result set
    • The asterisk symbol (*) is supported in --Tables and --Views parameters of Create-Model to include all objects
  • The list of keywords and reserved words of Oracle, MySQL, PostgreSQL being quoted by Entity Developer is updated
  • Retrieving SQL Server metadata of cross-schema foreign keys by Create Model Wizard and Update From Database Wizard is optimized (SQL Server)
  • The behavior of Create Model Wizard and Update From Database Wizard is changed: timeout used for reading SQL Server metadata is greatly increased
  • The behavior for the new EF, EF Core, NHibernate, Telerik Data Access models is changed: Primitive Default Value Generation is set to Literal now instead of LiteralOrExpression
  • The behavior is changed: the names of system types are generated without "System." prefix now in EF Core and NHibernate models; for example, it is DateTime instead of System.DateTime
  • The behavior is changed: only one confirmation for executing stored procedure is requested by Entity Developer when drag&drop-ing procedure from Database Explorer to Model Explorer or diagram surface
  • The compatibility issue with JetBrains ReSharper is fixed
  • The bug with detecting strings, being expressions, as string literals when generating initialization of string properties basing on database columns' default values in EF, EF Core, NHibernate models is fixed
  • The bug with detecting numbers, being quoted string literals, as strings when generating initialization of numeric properties basing on database columns' default values in EF, EF Core, NHibernate models is fixed
  • The bug with detecting numeric and string literals, specified within round brackets, when generating initialization of properties basing on Oracle columns' default values in EF, EF Core, NHibernate models is fixed ("ODP.NET, Unmanaged Driver"/"ODP.NET, Managed Driver")
  • The bug with retrieving metadata of string columns' default values in MySQL 8 is fixed (MySQL Connector/Net)
  • The bug with droping and recreating indexes by Update From Database Wizard, when there are unique indexes with the same name in different tables, is fixed (SQL Server)
  • The bug with throwing "Index was outside the bounds of the array" by Create Model Wizard and Update From Database Wizard, when getting metadata from result set with datetime2 or/and time columns returned by Table Valued Function, is fixed (SQL Server)
  • The bug with generating new Guid() with Primitive Default Value Generation=Literal in EF, EF Core, NHibernate, Telerik Data Access models is fixed
Entity Framework support
  • Entity Framework Core 5.0 is supported for Microsoft.Data.SqlClient, Microsoft.Data.Sqlite, Npgsql
  • .NET 5.0 is added to the list of available Target Framework versions in Create Model Wizard and Model Settings in EF6 and EF Core models
  • The new option "Execute procedures for result set detection" is added to Model Settings of EF Core Model to control obtaining metadata of a procedure or function result set
  • The new option "Use NULL parameter values" is added to Model Settings of EF Core Model to specify whether NULL parameter values are used for stored procedure execution
  • The new option "Add complex types to diagram" is added to Model Settings of EF Core Model to control behavior of Create Model Wizard and Update Model From Database Wizard
  • The new option "Add new complex types to the current diagram" is added to Update Model From Database Wizard of EF Core Model
  • The new property Collection Property Type is added to EF template "DbContext" and EF Core template "EF Core" to determine .NET type used as a property type for the Many end of associations
  • The new property Collection Initialization Type is added to EF template "DbContext" and EF Core template "EF Core" to determine .NET type used for initialization of the Many end of association; if it is set to None, then no initialization is generated
  • The new partial method is added to the OnModelCreating(DbModelBuilder modelBuilder) method generated by DbContext template of EF model
  • The design time connection via Microsoft.Data.SQLite is supported for creating EF Core Model in standalone and console versions of Entity Developer
  • The generation of a class inherited from DbConfiguration in EF 6.4 is added to .NET Core/.NET Standard projects (Npgsql/Firebird)
  • The DbProviderFactories and DbProviderServices registrations are implemented in Create Model Wizard of EF6 models for System.Data.SQLite and FirebirdSql.Data.FirebirdClient providers in .NET Framework and .NET Core/.NET Standard projects
  • The new property Target Framework is added to Create Model Wizard and Model Settings of EF6 models
  • The list of providers (packages) loaded by Create Model Wizard in EF6 models is extended
  • The behavior is changed: the definition of auto-implemented property is put now on the single line with
    • C# DbContext template of Devart Entity Model when ImplementINotifyPropertyChanging=False and ImplementINotifyPropertyChanged=False and PropertyChangePartialMethods=False
    • C# EF Core template of Devart EF Core Model when PropertyChangeNotifiers=False and PropertyChangePartialMethods=False
  • The EF Core model deserialization is improved: Entity Developer shows the full list of detected errors and tries to load the model with invalid elements or ignores such elements if their deserialization is not possible
  • The behavior is changed: now the EF Core template generates an additional partial class for the context class when "File Per Class" and "Generate Partial Class" are set to True
  • The bug with code generation for zero-or-one to zero-or-one association in the EF6 model with the DbContext template (Fluent Mapping=True) is fixed
  • The bug with Visual Studio validation of EF 6.4 models is fixed
  • The bug with missing default value in the generated code basing on DEFAULT value in a database, when any of ImplementINotifyPropertyChanging, ImplementINotifyPropertyChanged, PropertyChangePartialMethods options of DbContext template in EF is turned on, is fixed
  • The bug with adding entities to conceptual part of EF6 model created using Npgsql or System.Data.SQLite is fixed
  • The bug with generating .HasMany end of one-to-many association in EF Core Model is fixed
  • The bug with generating TPH mapping in EF Core 3 model is fixed
  • The bug with false appearing the "Table or view '...' has no primary key columns, and the entity key for the corresponding storage entity was calculated automatically from other fields." warning in the Error List window is fixed
Devart development team
http://www.devart.com/entitydeveloper/

Locked