2012-02-20 5 views
15

Sono nuovo di piattaforma di asp.net MVC3 sto seguendo il tutorial che è pubblicato sul sito web asp.net: http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part1-csMVC3: in grado di recuperare i metadati per la mia classe del modello quando voglio accesse dati del modello dal regolatore

Ma nel quinto passo che ho bisogno di accedere ai miei dati di classe del modello da un controller sto affrontando alcuni problemi, ho creato la classe del modello e la classe di contesto, ma quando voglio creare una classe controller usando il template scaffolding (controller con leggere/scrivere azioni e viste utilizzando l'entità framework) mi dà un errore come di seguito:

impossibile per recuperare i metadati per "nome completo del mio modelclass". sistema di configurazione è riuscito a inizializzare

+0

Probabilmente perché la stringa di connessione è sbagliata. Pubblicalo qui. –

+0

prova questo !! ... mi ha aiutato ... spero che ti aiuti anche ... http://stackoverflow.com/questions/8238811/mvc-add-controller-is-unable-to-retrieve-metadata- config-system-failed-to-i Grazie !! – aromore

+0

Questa è la mia connessione in rete.config: Hardworker

risposta

5

provare questo ...

<add name="MovieDBContext" connectionString="data source=.\SQLEXPRESS;&#xD;&#xA;   Integrated Security=SSPI;&#xD;&#xA; AttachDBFilename=|DataDirectory|\MVCtest.sdf;&#xD;&#xA;   User Instance=true" providerName="System.Data.SqlClient" /> 
+0

Sì, posso aggiungere a questo pure a volte è solo meglio iniziare da zero. Rimuovere eventuali stringhe di connessione esistenti da web.config, rimuovere Entity Model (.edmx) e quindi ricrearlo nuovamente. A volte penso che qualcosa venga ottimizzato e incasinato tutto. Inoltre, se si utilizzano classi parziali con lo stesso nome, assicurarsi di selezionare la classe di entità appropriata durante lo scaffolding. – atconway

+1

+1 E se è installata la versione completa di SQL Server, puntarla su un database in localhost 'data source = localhost; Integrated Security = SSPI; Database = test;' – Andomar

+0

@Andomar Sto lavorando con la versione completa di SQL Server. Quindi non esiste alcun DB di film sul mio server. Sto seguendo lo stesso tutorial di OP. E anch'io ho lo stesso errore. Cosa c'è di sbagliato con il mio connstring? '' Se aggiungo 'providerName =" System.Data.SqlClient "', allora funziona - anche se non ha senso per me. Tuttavia non riesco a vedere il filmato db creato in Server Explorer di VS. Quindi non sono sicuro di essere nella giusta direzione. – bonCodigo

18

Basta cambiare la connessione tipo di provider stringa da System.Data.SqlClient

+2

Non funziona anche io non sono sicuro che dovrebbe funzionare per '.sdf'. L'aggiunta della stringa di connessione così com'è dopo l'aggiunta del controller è una soluzione. – Sami

5

ho cambiato il providerName a System.Data.SqlClient come suggerito in un altro anwer. Questo mi ha permesso di creare il controller nel passo di aggiunta del controller. Ma l'applicazione non mostrerebbe la risorsa film quando l'ho eseguita. Ho quindi cambiato di nuovo a System.Data.SqlServerCe.4.0 come nel tutorial e tutto ha funzionato.

Dopo aver letto altre discussioni sul Web, ho trovato un altro metodo.

Se non si aggiunge la stringa di connessione fino a dopo aver creato la classe controller, funzionerà anche. Sembra un bug.

+2

+1. L'aggiunta della stringa di connessione così com'è dopo l'aggiunta del controller è una soluzione. – Sami

+1

Stesso lavoro per me. Ho aggiunto la stringa di connessione dopo aver aggiunto il controller. – maulik13

12

Nessun bug. E 'solo che c'è un ordine cronologico è necessario seguire al fine di riflettere la struttura del modello e la migrazione al database e non hanno errori:

  1. creare il controller (non comprendono ancora le stringhe di connessione in Web. config o si otterrebbe il suddetto errore.)
  2. Aggiungere la stringa di connessione in Web.config con ciò che è scritto nel tutorial.
  3. Infine, eseguire l'applicazione.

NOTA: Non creare manualmente il database compatto perché Visual Studio creerà e la mappa per voi insieme con la struttura del modello, come si esegue e navigare a tale controller nel tuo browser automaticamente. Assicurati di avere il percorso corretto del database nel tuo Web.config. Spero che questo ti aiuti! Saluti.

+0

Seguendo il tuo suggerimento, non vedo un database chiamato Movies creato sotto la finestra Server Explorer di VStuio - sebbene i tuoi suggerimenti funzionino. Mi piacerebbe vedere il db. Inoltre sto avendo la versione completa di SQL Server. – bonCodigo

0

Assicurarsi di aggiungere la stringa di connessione nel file web.config corretto perché ce ne sono 2 (una a livello di soluzione e un'altra a livello di vista). Vuoi aggiungerlo a livello di vista. Le tue cose crude verranno create bene dopo aver corretto la stringa di connessione, quindi creato il controller ... Grazie, Maurice Maglalang

Problemi correlati