Mysql
 sql >> Database >  >> RDS >> Mysql

Come impostare la stringa di connessione con Entity Framework

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à.