Domanda

Ho un'applicazione che utilizza EF CTP5.

In questa particolare situazione, ho bisogno di degrado a qualche ADO.NET classico (per leggere più set di risultati in una stored procedure, che EF non supporta).

In quanto tale, nel tentativo di utilizzare il stringa di connessione esistente dall'oggetto EntityConnection, in questo modo:

var ctx = (this as IObjectContextAdapter).ObjectContext;
var efCon = ((EntityConnection) (ctx.Connection)).StoreConnection;
var con = new SqlConnection(efCon.ConnectionString);
con.Open(); // exception thrown

Quando il debug, vedo che il ConnectionString non contiene la password, solo la fonte di dati, nome utente, database, ecc.

E 'una cosa di sicurezza perché hanno tolto? Fa EF nascondere il posto password e utilizzare solo quando si esegue le procedure memorizzate per sé?

La stringa di connessione EF non è come classiche stringhe di connessione ADO.NET, in quanto ha informazioni metadati.

Quindi sembra che im andando ad avere per togliere la parte della stringa di connessione che ho bisogno, che mettere in web.config e farla passare attraverso al repository.

Sicuramente ci deve essere un modo migliore!

È stato utile?

Soluzione

Prova ad aggiungere "Persiste la sicurezza Info = true;" alla stringa di connessione di contesto. Questo ha funzionato per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top