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

Dieser Artikel enthält Anleitungen zum Verschieben von einer Anwendung erstellt, mit dem RC2-Paketen auf 1.0.0 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 Pakete auf oberster Ebene, die Sie in der Regel in eine Anwendung installieren würden wurde zwischen RC2 und RTM-Version nicht geändert werden.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 zu aktualisieren:You need to upgrade the installed packages to the RTM versions:

  • Runtime-Pakete (z. B. Microsoft.EntityFrameworkCore.SqlServer) von geändert 1.0.0-rc2-final zu 1.0.0.Runtime packages (for example, Microsoft.EntityFrameworkCore.SqlServer) changed from 1.0.0-rc2-final to 1.0.0.

  • Die Microsoft.EntityFrameworkCore.Tools Paket geändert 1.0.0-preview1-final zu 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 Tools immer noch eine Vorabversion.Note that tooling is still pre-release.

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

In RC2, sah die Spaltendefinition in einer Migration table.Column<string>(nullable: true) und die Länge der Spalte in einige Metadaten wir in den Code hinter der Migration speichern gesucht 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 ist jetzt die Länge in dem eingerüsteten 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 Gerüst erstellt wurden, vor der Verwendung von RTM-Version müssen nicht die maxLength Argument 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, aber die Spalten, die Teil eines Schlüssels, foreign key- oder Index müssen 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 die indizierten Spalten.By convention, 450 is the maximum length used for keys, foreign keys, and indexed columns. Wenn Sie eine Länge explizit 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 die Projekte, die aus einer vorab erstellten und Verwenden von ASP.NET Identity-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 verwendet, um die Datenbank zu erstellen.The project template includes a migration used to create the database. Diese Migration muss bearbeitet werden, 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

Fehler für diese Änderung führt in der folgenden Ausnahme, wenn die ursprü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

Wenn Sie .NET Core mit RC2 verwenden wurden, mussten Sie fügen imports Datei "Project.JSON" als vorübergehende problemumgehung für einige der EF Core Abhängigkeiten, die nicht unterstützen .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. Diese können jetzt entfernt werden.These can now be removed.

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

Hinweis

Ab Version 1.0 RTM-Version der .NET Core SDK unterstützt nicht mehr project.json oder .NET Core-Anwendungen mit Visual Studio 2015 entwickeln.As of version 1.0 RTM, the .NET Core SDK no longer supports project.json or developing .NET Core applications using Visual Studio 2015. Es wird empfohlen, eine Migration von „project.json“ zu „csproj“ durchzuführen.We recommend you migrate from project.json to csproj. Wenn Sie Visual Studio verwenden, sollten Sie Sie ein upgrade auf Visual Studio 2017.If you are using Visual Studio, we recommend you upgrade to Visual Studio 2017.

UWP: Fügen Sie bindungsumleitungen hinzuUWP: Add binding redirects

Es wird versucht, EF-Befehle auf der universellen Windows-Plattform (UWP) von 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.

Sie müssen das 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 Stammordner, und die richtigen Assemblyversionen umleitungen hinzugefügt.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>