2014-05-12 19 views
7

Ich habe diesen Fehler. Could not load type 'System.ComponentModel.DataAnnotations.Schema.IndexAttribute' ERRORKonnte Typ 'System.ComponentModel.DataAnnotations.Schema.IndexAttribute' nicht laden

Der ApplicationDbContext ist Auto Generated DbContext, im Abschnitt Konto verwendet. Immer wenn ich versuche, Account-Controller-Aktionen zu verwenden, tritt dieser Fehler auf. Der Fehler stammt aus

public AccountController() 
      : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()))) 
     { 
     } 

ich meine eigene DbContext haben, der gut arbeitet und erhält alle erforderlichen Daten.

Die Referenzen sind in Ordnung. Wie behebe ich dieses Problem?

Update Ich habe einige aktualisierte Refrescen für AspNet.Identity verwendet. verursacht es das Problem?

Update 2 Dieser Fehler trat auf, wenn ich zwei Mitgliedschaftsanbieterversionen mixte. Ich benutzte zuerst die mit MVC 5 zur Verfügung gestellte Vorgabe, versuchte dann MVC 3-Mitgliedschaft zu verwenden, ging dann aber wieder zu MVC 5 zurück. Dann fing dieser Fehler an, aufzutauchen.

Ich habe immer noch keine Lösung für dieses Problem gefunden. Aber als Workaround, ich das Projekt neu erstellt alle vorherigen Dateien, und es hat funktioniert.

+0

hi, hast du irgendeine Abhilfe für die oben genannten, ich habe das gleiche Problem – Eldho

+0

Jede Auflösung? Ich habe auch das gleiche Problem. – spadelives

+0

Ich habe das Projekt tatsächlich mit den gleichen Dateien (Modelle, Controller, Ansichten) neu erstellt und es hat funktioniert. Konnte die echte Lösung nicht finden:/ – Ruchan

Antwort

10

Bearbeiten Sie Ihre .csproj Datei, und ersetzen Sie die <HintPath> Werte mit den richtigen Entity Framework Version Pfade (derzeit die letzte stabile Version ist 6.1.2):

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath> 
</Reference> 
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.SqlServer.dll</HintPath> 
</Reference> 

Stellen Sie sicher, dass die Pfade existieren; Wenn nicht, installieren Sie das Nuget-Paket für die gewünschte Version.

Um klar zu sein, das sind die Elemente <HintPath> Sie die aktuelle Version bearbeiten möchten, um sicherzustellen, haben:

<HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath> 

und

<HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath> 

diese auf die Hauptversion gesetzt verlassen 6.0.0.0:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 

Und

<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
+0

Eigentlich ist es 6.1.3, wenn Sie die neueste EF 6 verwenden. –

+0

In Visual Studio (2015) -Menü: Extras-> Nuget-Paket-Manager-> Verwalten Sie Nuget-Pakete für die Lösung ... Sie haben einen Überblick. In meinem Fall ausgewählt Entity Framework im linken Bereich und sofort gesehen, dass ein Projekt eine alte Version von EF verwendet. Was auch der Schuldige war. – LosManos

0

Ich hatte einen ähnlichen Fehler mit einem Testprojekt, beide Projekte hatten einen Verweis auf Entity Framework 6.0.0.0. Ich konnte es lösen, indem ich den Verweis auf das Entity-Framework im Testprojekt wieder entfernte und hinzufügte.

Verwandte Themen