Breaking Change T932556
Visible to All Users

Changes in the DevExpress.ExpressApp.EFCore NuGet package

What Changed

  1. The DevExpress.ExpressApp.EFCore NuGet package requires the .NET Standard 2.1 platform instead of .NET Standard 2.0.

  2. 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)" />

  3. 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.

Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.