Ho una DLL che utilizza Entity Framework 6 per eseguire alcune operazioni di database. Sto usando un primo approccio al database. Il modello e tutto ciò che riguarda Entity Framework, come la stringa di connessione in App.config, sono stati creati tramite la wizzard in Visual Studio.Entity Framework 6 set stringa di connessione nel codice
Così ho compilato la DLL e l'ho messa insieme con il corrispondente .config nella cartella in cui si attende l'applicazione che usa la dll.
Tutto funziona correttamente finché non arrivo al punto in cui viene effettuata una chiamata al database. Ci ottengo l'errore:
Cannot find connection string for MyDatabaseEntity
connectionstring generato automaticamente è, come ho detto, nel file di configurazione della DLL. Non riesco a modificare App.config dell'applicazione. Ma l'applicazione consegna un oggetto che ha tutte le informazioni di cui ho bisogno per costruire da solo la stringa di connessione. Quindi sto cercando un modo per impostare la stringa di connessione nel codice senza fare affidamento su un file di configurazione. Tutte le esercitazioni che trovo per un primo approccio al database usano comunque questo metodo. Ho trovato un post qui che dice semplicemente dare la stringa di connessione come parametro quando si crea l'oggetto come
MyDatabaseEntities = new MyDatabaseEntities(dbConnect);
ma'MyDatabaseEntities' non ha un costruttore che accetta i parametri
public partial class MyDatabaseEntities : DbContext
{
public MyDatabaseEntities()
: base("name=MyDatabaseEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<MyTable> MyTable { get; set; }
}
non ero a conoscenza che la stringa alla base() è stato la stringa di connessione. Grazie, l'ha fatto. – FNR
Sì, prova a trovare la connectiontring con il nome specificato tra parentesi nel file di configurazione del progetto di avvio –
Ho impostato la connessione stirng come questa: string connection = @ "metadata = res: //*/ShopModel.csdl | res: //*/ShopModel.ssdl | res: //*/ShopModel.msl; provider = System.Data.SqlClient; provider connection string = " origine dati = SIPL35 \ SQL2016; catalogo iniziale = Join8ShopDB2; id utente = Sa; password = Sa123! @ #; MultipleActiveResultSets = True; App = EntityFramework " "; Join8ShopDBEntities dbContext = new Join8ShopDBEntities (connessione); ma mi sta dando un'eccezione non identificata per la sorgente di dati sorgente –