Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ustawić parametry połączenia za pomocą Entity Framework

powinieneś użyć EntityConnectionFactory
Oto, czego potrzebujesz.

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

Oto przykładowe użycie

MyContext ctx = new MyContext(CreateConnectionString())

::Aktualizacja ::

Ponieważ używasz pierwszej metody DB, zobacz następujący obraz

gdy te dwa przyciski radiowe są dostępne, wybierz pierwszy. Wtedy będziesz mógł ustawić parametry połączenia swojego modelu.

Oto jak wygląda mój kontekst (chociaż jest to kontekst obiektowy. Ale nie ma to znaczenia w kontekście tego pytania)

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

Aktualizacja

Dodaj konstruktor, którego szukasz, w częściowej klasie poza automatycznie wygenerowaną klasą encji:

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

Ten konstruktor nie jest zawarty w EF 5/6 najwyraźniej, aby zapobiec przypadkowemu przekazaniu ciągu połączenia sql, gdy wymagany jest ciąg połączenia encji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Jak skopiować wiersze, ale zmienić kilka pól?

  2. MySQL Case w instrukcji Select z operatorem LIKE

  3. Brak rozszerzenia mysqli, phpmyadmin nie działa

  4. Używanie mysql concat() w klauzuli WHERE?

  5. Obciąć wszystkie tabele w bazie danych MySQL w jednym poleceniu?