vous devez utiliser EntityConnectionFactory
Voici ce dont vous avez besoin.
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();
}
Voici un exemple d'utilisation
MyContext ctx = new MyContext(CreateConnectionString())
::Mise à jour ::
Comme vous utilisez la première méthode DB, voir l'image suivante
lorsque ces deux boutons radio sont disponibles, sélectionnez le premier. Ensuite, vous pourrez définir la chaîne de connexion de votre modèle.
Voici à quoi ressemble mon contexte (Bien qu'il s'agisse d'un contexte d'objet. Mais cela n'a pas d'importance dans le contexte de cette question)
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
...
}
Mettre à jour
Ajoutez le constructeur que vous recherchez dans une classe partielle en dehors de la classe d'entité générée automatiquement :
public partial class WMSChennaiDEVEntities : DbContext
{
public WMSChennaiDEVEntities(string connectionstring)
: base(connectionstring)
{
}
}
Ce constructeur n'est pas inclus dans EF 5/6 apparemment pour nous empêcher de passer accidentellement une chaîne de connexion sql lorsqu'une chaîne de connexion d'entité est souhaitée.