La mise à niveau à partir d’EF Core 1.0 RC2 vers RTMUpgrading from EF Core 1.0 RC2 to RTM

Cet article fournit des conseils pour déplacer une application générée avec les packages de RC2 à 1.0.0 RTM.This article provides guidance for moving an application built with the RC2 packages to 1.0.0 RTM.

Versions de packagePackage Versions

Les noms des packages de niveau supérieur que vous installeriez en général dans une application n’a pas changé entre RC2 et RTM.The names of the top level packages that you would typically install into an application did not change between RC2 and RTM.

Vous devez mettre à niveau les packages installés pour les versions RTM :You need to upgrade the installed packages to the RTM versions:

  • Packages de Runtime (par exemple, Microsoft.EntityFrameworkCore.SqlServer) a été remplacée par 1.0.0-rc2-final à 1.0.0.Runtime packages (for example, Microsoft.EntityFrameworkCore.SqlServer) changed from 1.0.0-rc2-final to 1.0.0.

  • Le Microsoft.EntityFrameworkCore.Tools package a été remplacée par 1.0.0-preview1-final à 1.0.0-preview2-final.The Microsoft.EntityFrameworkCore.Tools package changed from 1.0.0-preview1-final to 1.0.0-preview2-final. Notez que les outils sont toujours en version préliminaire.Note that tooling is still pre-release.

Migrations existantes peut-être maxLength ajoutéExisting migrations may need maxLength added

Dans RC2, la définition de colonne dans une migration ressemblait à table.Column<string>(nullable: true) et la longueur de la colonne a été recherchée dans des métadonnées que nous stockons dans le code-behind de la migration.In RC2, the column definition in a migration looked like table.Column<string>(nullable: true) and the length of the column was looked up in some metadata we store in the code behind the migration. Dans la version RTM, la longueur est désormais incluse dans le code structuré table.Column<string>(maxLength: 450, nullable: true).In RTM, the length is now included in the scaffolded code table.Column<string>(maxLength: 450, nullable: true).

Les migrations existantes qui ont été structurées avant d’utiliser la version RTM n’aura pas la maxLength argument spécifié.Any existing migrations that were scaffolded prior to using RTM will not have the maxLength argument specified. Cela signifie que la longueur maximale prise en charge par la base de données sera utilisée (nvarchar(max) sur SQL Server).This means the maximum length supported by the database will be used (nvarchar(max) on SQL Server). Cela peut être adaptée pour certaines colonnes, mais les colonnes qui font partie d’une clé, clé étrangère, ou les index doivent être mis à jour pour inclure une longueur maximale.This may be fine for some columns, but columns that are part of a key, foreign key, or index need to be updated to include a maximum length. Par convention, 450 correspond à la longueur maximale utilisés pour les clés, clés étrangères et les colonnes indexées.By convention, 450 is the maximum length used for keys, foreign keys, and indexed columns. Si vous avez explicitement configuré une longueur dans le modèle, vous devez utiliser cette longueur à la place.If you have explicitly configured a length in the model, then you should use that length instead.

ASP.NET IdentityASP.NET Identity

Cette modification a une incidence sur les projets qui utilisent ASP.NET Identity et ont été créés à partir d’un pré-RTM de modèle de projet.This change impacts projects that use ASP.NET Identity and were created from a pre-RTM project template. Le modèle de projet inclut une migration permet de créer la base de données.The project template includes a migration used to create the database. Cette migration doit être modifiée pour spécifier une longueur maximale de 256 sur les colonnes suivantes.This migration must be edited to specify a maximum length of 256 for the following columns.

  • AspNetRolesAspNetRoles

    • NameName

    • NormalizedNameNormalizedName

  • AspNetUsersAspNetUsers

    • MessagerieEmail

    • NormalizedEmailNormalizedEmail

    • NormalizedUserNameNormalizedUserName

    • UserNameUserName

Échec pour apporter cette modification entraîne l’exception suivante lors de la migration initiale est appliquée à une base de données.Failure to make this change will result in the following exception when the initial migration is applied to a database.

System.Data.SqlClient.SqlException (0x80131904): Column 'NormalizedName' in table 'AspNetRoles' is of a type that is invalid for use as a key column in an index.

.NET core : Supprimer « imports » dans project.json.NET Core: Remove "imports" in project.json

Si vous cibliez .NET Core avec RC2, vous deviez ajouter imports à project.json en tant que solution de contournement temporaire pour certaines des dépendances d’EF Core prenant ne pas en charge .NET Standard.If you were targeting .NET Core with RC2, you needed to add imports to project.json as a temporary workaround for some of EF Core's dependencies not supporting .NET Standard. Vous pouvez maintenant en supprimer.These can now be removed.

{
  "frameworks": {
    "netcoreapp1.0": {
      "imports": ["dnxcore50", "portable-net451+win8"]
    }
  }
}

Note

Depuis la version 1.0 RTM, le du SDK .NET Core prend en charge n’est plus project.json ou que vous développez des applications .NET Core à l’aide de Visual Studio 2015.As of version 1.0 RTM, the .NET Core SDK no longer supports project.json or developing .NET Core applications using Visual Studio 2015. Nous vous recommandons de migrer de project.json vers csproj.We recommend you migrate from project.json to csproj. Si vous utilisez Visual Studio, nous vous recommandons de passer à Visual Studio 2017.If you are using Visual Studio, we recommend you upgrade to Visual Studio 2017.

UWP : Ajouter des redirections de liaisonUWP: Add binding redirects

Tentative d’exécution des commandes EF sur les projets de plateforme universelle Windows (UWP) entraîne l’erreur suivante :Attempting to run EF commands on Universal Windows Platform (UWP) projects results in the following error:

System.IO.FileLoadException: Could not load file or assembly 'System.IO.FileSystem.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.

Vous devez ajouter manuellement des redirections de liaison pour le projet UWP.You need to manually add binding redirects to the UWP project. Créez un fichier nommé App.config dans le projet de dossier racine et ajouter des redirections vers les versions correcte de l’assembly.Create a file named App.config in the project root folder and add redirects to the correct assembly versions.

<configuration>
 <runtime>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
     <dependentAssembly>
       <assemblyIdentity name="System.IO.FileSystem.Primitives"
                         publicKeyToken="b03f5f7f11d50a3a"
                         culture="neutral" />
       <bindingRedirect oldVersion="4.0.0.0"
                        newVersion="4.0.1.0"/>
     </dependentAssembly>
     <dependentAssembly>
       <assemblyIdentity name="System.Threading.Overlapped"
                         publicKeyToken="b03f5f7f11d50a3a"
                         culture="neutral" />
       <bindingRedirect oldVersion="4.0.0.0"
                        newVersion="4.0.1.0"/>
     </dependentAssembly>
   </assemblyBinding>
 </runtime>
</configuration>