2015-05-06 13 views
11

Sto usando EF e generato .EDMX da esso ma poi volevo solo che fosse usato per la generazione automatica di file di classe.Nessuna stringa di connessione denominata potrebbe essere trovata nel file di configurazione dell'applicazione

Ho quindi utilizzato i file di classe per creare un modello di entità e quindi creato un contesto di database e quindi un repository. Sto chiamando un WebApi (che è in un progetto separato ma la stessa soluzione) per accedere al repository ai dati GET. Mentre corro il WebAPI, sto ottenendo l'errore,

{ "No stringa di connessione denominata 'DBEntities' potrebbe essere trovato nel file di configurazione dell'applicazione."}

Ma nel mio DAL, ho un webConfig e che ha la seguente voce, quindi non sono abbastanza sicuro che cosa è andato storto,

add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" 
+0

Mi dispiace, aveva i tag in modo che non sembra a causa di formattazione. Ho rimosso i tag e sono li – user1345260

+0

Controlla il mio aggiornamento, se risolve il tuo problema per favore accetta come risposta :) – Raishul

risposta

13

si dice "nel mio DAL, ho un webConfig". Immagino che la stringa di connessione sia nel file di configurazione di una libreria di classi di riferimento, ma non nel file di configurazione principale che hai nel tuo progetto di voce (un progetto di web api, immagino guardando i tag).

In tal caso, copiare semplicemente la stringa di connessione nel file di configurazione del progetto di immissione.

+0

Ho aggiunto la stringa di connessione a webapi e ora ho ottenuto quanto segue, {"Lo schema specificato non è valido. \ r \ nLa mappatura del tipo CLR al tipo EDM è ambigua perché più tipi CLR corrispondono al tipo EDM Client} – user1345260

+0

Questo aiuto? http://stackoverflow.com/questions/14927391/the-mapping-of-clr-type- to-edm-type-is-ambiguous-with-ef-6-5 –

1

Inserire la seguente sezione nella sezione di configurazione del file .config dello stesso progetto in cui si trova il file .edmx.

È anche possibile creare una stringa di connessione diversa per un ambiente diverso nel file .config del progetto principale e passare qualsiasi stringa di connessione come parametro del costruttore di DBContext.

<connectionStrings> 
 
    
 
<add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
 

 
</connectionStrings>

+0

È già lì – user1345260

+0

Si prega di rinominare la configurazione web per app.config nel progetto DAL quindi. – Raishul

+0

Ha fatto ma lo stesso errore – user1345260

1

ho scoperto che questo ha funzionato:

1) Verificare se si dispone di diversi file "App.config". 2) Verificare se ha un nome errato rispetto alla stringa di connessione che deve utilizzare. 3) Salvare il progetto ed eseguire il programma

Dovrebbe funzionare ora.

0

La soluzione più semplice:

rimuovere il file edmx attuale e stringa di connessione relativi a app.config e Aggiungi elemento EDMX con lo stesso nome precedente di nuovo.

questo ha funzionato per me.

0

Copia e incolla il connectiontring nel tuo file web.config del progetto WEBAPI risolverà il problema.

25

Nel file DbContext, rimuovere

public RaficaDB() 
: base("name=DefaultConnection"){} 

a

public RaficaDB() 
: base("DefaultConnection"){} 

EF 4.3, EF e EF 5 6 non piace la stringa di connessione viene chiamato name = xxxxx

risposta trovato qui ->No connection string named 'MyApplicationEntities' could be found in the application config file

+0

Se si fornisce ' nome = xxx' al costruttore, cercherà quella specifica stringa di connessione e genererà un errore se non impostato.Se non si specifica 'name = xxx', il localdb/sqlexpress proverà a crearlo. https://msdn.microsoft.com/en-us/library/jj592674(v=vs.113).aspx – murraybiscuit

Problemi correlati