Aktualisieren von EF Core 1.0 RC2 auf RTM-VersionUpgrading from EF Core 1.0 RC2 to RTM

Dieser Artikel enthält Hinweise zum Verschieben einer Anwendung erstellt, die mit den Paketen 1.0.0 RC2 RTM-Version.This article provides guidance for moving an application built with the RC2 packages to 1.0.0 RTM.

PaketversionenPackage Versions

Die Namen der obersten Ebene Pakete, die Sie in der Regel in einer Anwendung installieren möchten zwischen RC2 und RTM nicht ändern.The names of the top level packages that you would typically install into an application did not change between RC2 and RTM.

Sie müssen die installierten Pakete auf die RTM-Versionen aktualisieren:You need to upgrade the installed packages to the RTM versions:

  • Laufzeit-Pakete (z. B. Microsoft.EntityFrameworkCore.SqlServer) angebotskennzeichen 1.0.0-rc2-final auf 1.0.0.Runtime packages (e.g. Microsoft.EntityFrameworkCore.SqlServer) changed from 1.0.0-rc2-final to 1.0.0.

  • Die Microsoft.EntityFrameworkCore.Tools Paket angebotskennzeichen 1.0.0-preview1-final auf 1.0.0-preview2-final.The Microsoft.EntityFrameworkCore.Tools package changed from 1.0.0-preview1-final to 1.0.0-preview2-final. Beachten Sie, dass die Tools sind immer noch eine Vorabversion ist.Note that tooling is still pre-release.

Vorhandene Migrationen möglicherweise MaxLength hinzugefügtExisting migrations may need maxLength added

In RC2 die Spaltendefinition in einer Migration aussah table.Column<string>(nullable: true) und die Länge der Spalte in einige Metadaten wir in den Code für die Migration speichern nachgeschlagen wurde.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. In der RTM-Version, die Länge jetzt im scaffolded Code enthalten 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).

Alle vorhandenen Migrationen, bei denen vor der Verwendung von RTM Gerüstbau wurden keine der maxLength Argument wurde angegeben.Any existing migrations that were scaffolded prior to using RTM will not have the maxLength argument specified. Dies bedeutet, dass die maximale Länge, die von der Datenbank unterstützt werden kann (nvarchar(max) auf SQL Server).This means the maximum length supported by the database will be used (nvarchar(max) on SQL Server). Dies ist möglicherweise für einige Spalten, jedoch die Spalten, die Teil eines Schlüssels, Fremdschlüssel, sind in Ordnung, oder Index muss aktualisiert werden, um eine maximale Länge enthalten.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. Gemäß der Konvention ist 450 die maximale Länge für Schlüssel, Fremdschlüssel, verwendet und volltextindizierte Spalten.By convention, 450 is the maximum length used for keys, foreign keys, and indexed columns. Wenn Sie explizit eine Länge in das Modell konfiguriert haben, sollten Sie stattdessen diese Länge verwenden.If you have explicitly configured a length in the model, then you should use that length instead.

ASP.NET IdentityASP.NET Identity

Diese Änderung wirkt sich auf Projekte, die ASP.NET Identity verwendet und erstellt wurden, aus einer vor-RTM-Projektvorlage.This change impacts projects that use ASP.NET Identity and were created from a pre-RTM project template. Die Projektvorlage enthält eine Migration zum Erstellen der Datenbank verwendet.The project template includes a migration used to create the database. Diese Migration bearbeitet werden muss, zum Angeben einer maximalen Länge von 256 für die folgenden Spalten.This migration must be edited to specify a maximum length of 256 for the following columns.

  • AspNetRolesAspNetRoles

    • NameName

    • NormalizedNameNormalizedName

  • AspNetUsersAspNetUsers

    • E-MailEmail

    • NormalizedEmailNormalizedEmail

    • NormalizedUserNameNormalizedUserName

    • UserNameUserName

Diese Änderung wird in der folgenden Ausnahme ansonsten bei die anfängliche Migration auf eine Datenbank angewendet wird.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: Entfernen von "Imports" in "Project.JSON".NET Core: Remove "imports" in project.json

Bei der Ausrichtung auf .NET Core mit RC2 wurden benötigt hinzuzufügende imports auf "Project.JSON" als vorübergehende problemumgehung für einige der EF kernabhängigkeiten .NET Standard, nicht unterstützt.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. Diese können jetzt entfernt werden.These can now be removed.

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

Universelle Windows-Plattform: Fügen Sie bindungsumleitungen hinzuUWP: Add binding redirects

Es wird versucht, EF-Befehle auf die universelle Windows-Plattform (UWP) Teamprojekten führt zu folgendem Fehler ausgeführt: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.

In diesem Fall müssen Sie eine uwp-Projekt manuell bindungsumleitungen hinzufügen.You need to manually add binding redirects to the UWP project. Erstellen Sie eine Datei mit dem Namen App.config im Projekt root-Ordner und die richtigen Assemblyversionen leitet hinzuzufügen.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>