Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment définir la chaîne de connexion avec Entity Framework

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.