2012-09-30 11 views
6

Ho utilizzato SQL Server CE 4.0 nell'app per Windows e utilizzo Entity Framework per creare un modello di esso.Come utilizzare la stringa di connessione dinamica per SQL Server CE?

Funziona bene, ma i miei problemi è che non ha un costruttore per modificare la stringa di connessione, e per impostazione predefinita legge la stringa di connessione dal file app.config.

using (var Context = new MyEntitiesModel(//has no constructor)) 
{ 
     ... 
} 

ho creare una stringa di connessione dinamica e

using (var Context = new MyEntitiesModel()) 
    { 
     Context.Database.Connection.ConnectionString = entityConnection.ConnectionString; 
    } 

Funziona bene in questo modo, ma se tolgo un'altra stringa di connessione nel app.config file, mi ha dato questo.

error = invalid metasource ....

perché il costruttore di default usa

Come posso gestire la cosa?

+0

Non c'è un costruttore che accetta un DbConnection come parametro? –

+0

sì, non esiste un costruttore per modificare la stringa di connessione – motevalizadeh

+1

, non puoi semplicemente lasciare una stringa di connessione fittizia nel file app.config? Errore – Seph

risposta

2

Crea il tuo costruttore. MyEntitiesModel è una classe parziale è possibile aggiungere la propria parte parziale della classe e aggiungere il costruttore che accetta una stringa di connessione.

public partial class MyEntitiesModel { 
    public MyEntitiesModel(string connectionString) : base(connectionString) { } 
} 
+0

: il codice generato utilizzando i modelli T4 per lo sviluppo Database First e Model First potrebbe non funzionare correttamente se utilizzato in modalità Code First. Per continuare a utilizzare Database First o Model First assicurarsi che la stringa di connessione di Entity Framework sia specificata nel file di configurazione dell'applicazione in esecuzione. Per utilizzare queste classi, che sono state generate da Database First o Model First, con Code First aggiungere qualsiasi configurazione aggiuntiva utilizzando gli attributi o l'API DbModelBuilder e quindi rimuovere il codice che genera questa eccezione. – motevalizadeh

+0

Come appare la stringa di connessione? –

+0

"origine dati = | DataDirectory | \\ MyDb.sdf; password = xxx; informazioni di sicurezza persistenti = True"; – motevalizadeh

1

Im usando DbContext. Esistono diversi costruttori di sovraccarico, ad esempio: ObjectContext ha anche un set simile di sovraccarichi del costruttore.

System.Data.Entity DbContext esempio

Context = new BosMasterEntities(nameOrConnectionString: nameOrConnectionString); 

È possibile collegarsi a molteplici Dbs allo stesso tempo.

Problemi correlati