What Changed
-
The DevExpress.ExpressApp.EFCore NuGet package requires the .NET Standard 2.1 platform instead of .NET Standard 2.0.
-
The DevExpress.ExpressApp.EFCore NuGet package requires the following EF Core packages of the 5.0 RC1 version instead of v3.1.2.
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="[5.0.0-rc.1.20451.13, 6.0)" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="[5.0.0-rc.1.20451.13, 6.0)" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[5.0.0-rc.1.20451.14, 6.0)" />
-
We moved the EF Core 3.x-based versions of the following business objects from the DevExpress.ExpressApp.EFCore NuGet package to DevExpress.Persistent.BaseImpl.EFCore.Legacy.
- ModelDifference
- ModelDifferenceAspect
- PermissionPolicyActionPermissionObject
- PermissionPolicyMemberPermissionsObject
- PermissionPolicyNavigationPermissionObject
- PermissionPolicyObjectPermissionsObject
- PermissionPolicyRole
- PermissionPolicyRoleBase
- PermissionPolicyTypePermissionObject
- PermissionPolicyUser
- PermissionPolicyUserRole
The EF Core 5.0-based versions of the following business classes are included into the DevExpress.Persistent.BaseImpl.EFCore NuGet package.
Reasons for Change
When you declare many-to-many relationships with EF Core 3.x, you need to implement an additional entity for the join table and map two separate one-to-many relationships. EF Core 5.0 fully supports many-to-many relationships and allows you to declare them without additional entities. For more information, refer to the What's New in EF Core 5.0.
Impact on Existing Apps
This change will affect your application if you use business classes from the DevExpress.ExpressApp.EFCore NuGet package.
We recommend that you migrate to business classes from the DevExpress.Persistent.BaseImpl.EFCore Nuget package. Note that you need to perform database migration since the new business classes differ from the legacy.
How to Revert to Previous Behavior
If you still want to use EF Core 3 with legacy classes, reference the DevExpress.Persistent.BaseImpl.EFCore.Legacy package in your project. Do not use this package in new projects.