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

Sådan indstilles forbindelsesstreng med Entity Framework

du skal bruge EntityConnectionFactory
Her er hvad du har brug for.

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

Her er et eksempel på brug

MyContext ctx = new MyContext(CreateConnectionString())

::Opdater ::

Da du bruger DB first-metoden, se følgende billede

når disse to alternativknapper er tilgængelige, skal du vælge den første. Så vil du være i stand til at indstille forbindelsesstrengen for din model.

Sådan ser min kontekst ud (selvom det er objektkontekst. Men det er ligegyldigt i forbindelse med dette spørgsmål)

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

Opdater

Tilføj den konstruktør, du leder efter, i en delklasse uden for den autogenererede enhedsklasse:

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

Denne konstruktør er tilsyneladende ikke inkluderet i EF 5/6 for at forhindre os i ved et uheld at sende en sql-forbindelsesstreng, når der ønskes en enhedsforbindelsesstreng.



  1. Ikke unik tabel/alias

  2. LOWER() – Konverter til små bogstaver i PostgreSQL

  3. Tegning af flere polygoner på Google Maps API v3 fra MySQL-databasen

  4. SQLite ÆNDRINGSTABEL