Sie sollten EntityConnectionFactory
verwenden
Hier ist, was Sie brauchen.
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();
}
Hier ist ein Anwendungsbeispiel
MyContext ctx = new MyContext(CreateConnectionString())
::Aktualisieren ::
Wie Sie die DB-First-Methode verwenden, sehen Sie sich das folgende Bild an
Wenn diese beiden Optionsfelder verfügbar sind, wählen Sie das erste aus. Anschließend können Sie die Verbindungszeichenfolge Ihres Modells festlegen.
So sieht mein Kontext aus (Obwohl es sich um einen Objektkontext handelt. Spielt aber im Kontext dieser Frage keine Rolle)
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
...
}
Aktualisieren
Fügen Sie den gesuchten Konstruktor in einer partiellen Klasse außerhalb der automatisch generierten Entitätsklasse hinzu:
public partial class WMSChennaiDEVEntities : DbContext
{
public WMSChennaiDEVEntities(string connectionstring)
: base(connectionstring)
{
}
}
Dieser Konstruktor ist anscheinend nicht in EF 5/6 enthalten, um uns daran zu hindern, versehentlich eine SQL-Verbindungszeichenfolge zu übergeben, wenn eine Entitätsverbindungszeichenfolge gewünscht wird.