sql >> Base de Datos >  >> RDS >> Mysql

Cómo configurar la cadena de conexión con Entity Framework

deberías usar EntityConnectionFactory
Esto es lo que necesita.

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();
}

Aquí hay un ejemplo de uso

MyContext ctx = new MyContext(CreateConnectionString())

::Actualizar ::

Como está utilizando el primer método DB, vea la siguiente imagen

cuando estos dos botones de opción estén disponibles, seleccione el primero. Entonces podrá establecer la cadena de conexión de su modelo.

Así es como se ve mi contexto (aunque es un contexto de objeto. Pero no importa en el contexto de esta pregunta)

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

Actualizar

Agregue el constructor que está buscando en una clase parcial fuera de la clase de entidad generada automáticamente:

public partial class WMSChennaiDEVEntities : DbContext
{
    public WMSChennaiDEVEntities(string connectionstring)
            : base(connectionstring)
    {
    }
}

Este constructor no está incluido en EF 5/6 aparentemente para evitar que pasemos accidentalmente una cadena de conexión sql cuando se desea una cadena de conexión de entidad.