sql >> Databasteknik >  >> RDS >> Mysql

Hur man ställer in anslutningssträng med Entity Framework

du bör använda EntityConnectionFactory
Här är vad du behöver.

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

Här är ett exempel på användning

MyContext ctx = new MyContext(CreateConnectionString())

::Uppdatera ::

Eftersom du använder DB first-metoden, se följande bild

när dessa två alternativknappar är tillgängliga, välj den första. Sedan kommer du att kunna ställa in anslutningssträngen för din modell.

Så här ser mitt sammanhang ut (även om det är föremålskontext. Men det spelar ingen roll i sammanhanget för denna fråga)

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

Uppdatera

Lägg till konstruktören du letar efter i en partiell klass utanför den automatiskt genererade entitetsklassen:

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

Denna konstruktor ingår inte i EF 5/6 tydligen för att förhindra att vi av misstag skickar en sql-anslutningssträng när en entitetsanslutningssträng önskas.



  1. 2 sätt att ta bort dubbletter av rader i MariaDB (ignorerar primärnyckel)

  2. Hur man skickar en nollvariabel till en lagrad SQL-procedur från C#.net-kod

  3. UTL_FILE.FREMOVE Exempel:Ta bort en fil i Oracle

  4. Hur BIN() fungerar i MariaDB