powinieneś użyć EntityConnectionFactory
Oto, czego potrzebujesz.
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();
}
Oto przykładowe użycie
MyContext ctx = new MyContext(CreateConnectionString())
::Aktualizacja ::
Ponieważ używasz pierwszej metody DB, zobacz następujący obraz
gdy te dwa przyciski radiowe są dostępne, wybierz pierwszy. Wtedy będziesz mógł ustawić parametry połączenia swojego modelu.
Oto jak wygląda mój kontekst (chociaż jest to kontekst obiektowy. Ale nie ma to znaczenia w kontekście tego pytania)
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
...
}
Aktualizacja
Dodaj konstruktor, którego szukasz, w częściowej klasie poza automatycznie wygenerowaną klasą encji:
public partial class WMSChennaiDEVEntities : DbContext
{
public WMSChennaiDEVEntities(string connectionstring)
: base(connectionstring)
{
}
}
Ten konstruktor nie jest zawarty w EF 5/6 najwyraźniej, aby zapobiec przypadkowemu przekazaniu ciągu połączenia sql, gdy wymagany jest ciąg połączenia encji.