Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So legen Sie die Verbindungszeichenfolge mit Entity Framework fest

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.