2014-05-12 23 views
7

Ho riscontrato questo errore. Could not load type 'System.ComponentModel.DataAnnotations.Schema.IndexAttribute' ERRORImpossibile caricare il tipo 'System.ComponentModel.DataAnnotations.Schema.IndexAttribute'

ApplicationDbContext è generato automaticamente DbContext, utilizzato nella sezione account. Ogni volta che cerco di utilizzare qualsiasi azione di Account Controller, questo errore si verifica. L'errore nasce da

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

Io ho la mia DbContext che funziona bene e ottiene tutti i dati richiesti.

I riferimenti sono a posto. Come posso risolvere questo problema.

Aggiornamento Ho utilizzato alcuni aggiornamenti aggiornati per AspNet.Identity. sta causando il problema?

Aggiornamento 2 Questo errore si è verificato durante la miscelazione di due versioni di provider di appartenenze. Per prima cosa ho utilizzato il valore predefinito fornito con MVC 5, quindi ho provato ad utilizzare l'appartenenza a MVC 3, quindi sono tornato di nuovo a MVC 5. Quindi questo errore ha iniziato a comparire.

Non ho ancora trovato la soluzione a questo problema. Ma come soluzione alternativa allo, ho ricreato il progetto con tutti i miei file precedenti e ha funzionato.

+0

ciao, hai qualche soluzione per quanto sopra, ho lo stesso problema – Eldho

+0

Qualche risoluzione? Ho anche lo stesso problema. – spadelives

+0

Ho effettivamente ricreato il progetto con gli stessi file (modelli, controller, viste) e ha funzionato. Impossibile trovare la soluzione reale:/ – Ruchan

risposta

10

Modificare il file .csproj, e sostituire i valori <HintPath> con la corretta percorsi versione di Entity Framework (attualmente, l'ultima versione stabile è 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> 

Verificare che esistano i percorsi; in caso contrario, installare il pacchetto Nuget per la versione desiderata.

Per essere chiari, questi sono gli <HintPath> elementi che si desidera modificare per garantire avere la versione attuale:

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

e

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

lasciare questi impostate per la versione principale 6.0.0.0:

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

E

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

In realtà, è 6.1.3, se si sta utilizzando l'EF 6 più recente. –

+0

Nel menu Visual Studio (2015): Strumenti-> Gestore pacchetti Nuget-> Gestisci pacchetti nuget per la soluzione ... hai una panoramica. Nel mio caso ho selezionato Entity framework nel pannello di sinistra e immediatamente ho visto che un progetto utilizzava una vecchia versione di EF. Quale era anche il colpevole. – LosManos

0

Ho avuto un errore simile con un progetto di test, entrambi i progetti avevano un riferimento al framework di entità 6.0.0.0. Sono stato in grado di risolverlo rimuovendo e aggiungendo di nuovo il riferimento all'entità framework nel progetto di test.

Problemi correlati