dovresti usare EntityConnectionFactory
Ecco di cosa hai bisogno.
public string CreateConnectionString(string BasicConnectionString)
{
//EntityConnectionFactory
var entityConnectionStringBuilder= new EntityConnectionStringBuilder();
entityConnectionStringBuilder.Provider = "Your Provicer here" //For me it is "System.Data.SqlClient";
entityConnectionStringBuilder.ProviderConnectionString = BasicConnectionString;
entityConnectionStringBuilder.Metadata = "res://*";
return entityConnectionStringBuilder.ToString();
}
Ecco un esempio di utilizzo
MyContext ctx = new MyContext(CreateConnectionString())
::Aggiornamento ::
Poiché stai utilizzando il primo metodo DB, guarda l'immagine seguente
quando questi due pulsanti di opzione sono disponibili, seleziona il primo. Quindi sarai in grado di impostare la stringa di connessione del tuo modello.
Ecco come appare il mio contesto (sebbene sia il contesto dell'oggetto. Ma non importa nel contesto di questa domanda)
public partial class DataContext : ObjectContext
{
#region Constructors
/// <summary>
/// Initializes a new DataContext object using the connection string found in the 'DataContext' section of the application configuration file.
/// </summary>
public DataContext() : base("name=DataContext", "DataContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
/// <summary>
/// Initialize a new DataContext object.
/// </summary>
public DataContext(string connectionString) : base(connectionString, "DataContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
/// <summary>
/// Initialize a new DataContext object.
/// </summary>
public DataContext(EntityConnection connection) : base(connection, "DataContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
#endregion
#region Partial Methods
partial void OnContextCreated();
#endregion
...
}
Aggiorna
Aggiungi il costruttore che stai cercando in una classe parziale al di fuori della classe di entità generata automaticamente:
public partial class WMSChennaiDEVEntities : DbContext
{
public WMSChennaiDEVEntities(string connectionstring)
: base(connectionstring)
{
}
}
Apparentemente questo costruttore non è incluso in EF 5/6 per impedirci di passare accidentalmente una stringa di connessione sql quando si desidera una stringa di connessione di entità.