sql >> Database >  >> RDS >> Mysql

Verbindingsreeks instellen met Entity Framework

u moet EntityConnectionFactory . gebruiken
Dit is wat je nodig hebt.

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

Hier is een voorbeeldgebruik

MyContext ctx = new MyContext(CreateConnectionString())

::Bijwerken ::

Aangezien u de DB first-methode gebruikt, zie de volgende afbeelding

wanneer deze twee keuzerondjes beschikbaar zijn, selecteert u de eerste. Vervolgens kunt u de verbindingsreeks van uw model instellen.

Dit is hoe mijn context eruit ziet (hoewel het objectcontext is. Maar maakt niet uit in de context van deze vraag)

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

Bijwerken

Voeg de constructor die u zoekt toe aan een gedeeltelijke klasse buiten de automatisch gegenereerde entiteitsklasse:

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

Deze constructor is blijkbaar niet opgenomen in EF 5/6 om te voorkomen dat we per ongeluk een sql-verbindingsreeks doorgeven wanneer een entiteitsverbindingsreeks gewenst is.



  1. MOD() Functie in Oracle

  2. Gedeeltelijke SQL Lexing in C#

  3. Behoud regelonderbrekingen van TextArea bij schrijven naar MySQL

  4. PHP Fatale fout:oproep naar ongedefinieerde functie mysqli_stmt_get_result()