La mise à niveau à partir de EF Core 1.0 RC2 vers la version 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 1.0.0 RC2 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 devez généralement installer 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:

  • Les packages d’exécution (par exemple, Microsoft.EntityFrameworkCore.SqlServer) a été remplacée par 1.0.0-rc2-final à 1.0.0.Runtime packages (e.g. 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 doit peut-être maxLength ajoutéExisting migrations may need maxLength added

Dans RC2, la définition de colonne dans une migration présentait 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 finale, la longueur est désormais incluse dans le code de modèle généré automatiquement 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 convenir pour certaines colonnes, mais les colonnes qui font partie d’une clé, la 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ée pour les clés étrangères, clés 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.

Identité ASP.NETASP.NET Identity

Cette modification a un impact 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

Pour effectuer ce changement entraînera 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 : Supprimez « importations » dans project.json.NET Core: Remove "imports" in project.json

Si vous ciblait .NET Core avec RC2, vous deviez ajouter imports à project.json en tant que solution de contournement temporaire pour certaines des dépendances de cœur EF ne pas de prise 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 les supprimer.These can now be removed.

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

Note

À partir de la version 1.0 RTM, les le Kit de développement .NET Core ne prend plus en project.json ou 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 vous mettre à niveau vers 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

Essayez d’exécuter des commandes d’EF sur les projets de plateforme Windows universelle (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 racine du dossier 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>