sql >> Databáze >  >> RDS >> Mysql

Jak mohu používat Entity Framework 6 s MySQL v ASP.NET 5?

Protože Web.config se již nepoužívá s ASP.NET 5, musíte použít konfigurace na základě kódu místo toho nakonfigurovat. Chcete-li tak učinit, vytvořte novou třídu, která dědí z DbConfiguration:

public class MyDbConfiguration : DbConfiguration
{
    public MyDbConfiguration()
    {
        // Register ADO.NET provider
        var dataSet = (DataSet)ConfigurationManager.GetSection("system.data");
        dataSet.Tables[0].Rows.Add(
            "MySQL Data Provider",
            ".Net Framework Data Provider for MySQL",
            "MySql.Data.MySqlClient",
            typeof(MySqlClientFactory).AssemblyQualifiedName
        );

        // Register Entity Framework provider
        SetProviderServices("MySql.Data.MySqlClient", new MySqlProviderServices());
        SetDefaultConnectionFactory(new MySqlConnectionFactory());
    }
}

První částí konfigurace je hack pro registraci poskytovatele ADO.NET za běhu dynamickým přidáním nové konfigurační položky do system.data sekce. To je velmi otřesné, ale zdá se, že funguje správně.

Přidejte připojovací řetězec do config.json spíše než Web.config :

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=localhost; Database=test; Uid=test; Pwd=password;"
    }
  }
}

Upravte DbContext použít správnou konfiguraci a připojovací řetězec:

[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyContext : DbContext
{
    public MyContext(IConfiguration config)
      : base(config["Data:DefaultConnection:ConnectionString"])
      {
      }
      // ...
}

Zaregistrujte MyContext v kontejneru pro vkládání závislostí v Startup.cs :

public void ConfigureServices(IServiceCollection services)
{
    // ...
    services.AddScoped<MyContext>();
}

Pak stačí použít vložení konstruktoru k získání MyContext do vašich ovladačů.

Další podrobnosti v mém příspěvku na blogu na http://dan.cx/ 2015/08/entity-framework-6-mysql-aspnet a ukázkový projekt na https://github.com/Daniel15/EFExample




  1. PRVG-2027 Vlastník souboru je mezi uzly nekonzistentní

  2. php mysql server zmizel

  3. MYSQL extrahuje prvky json, kde json obsahuje

  4. Chyba NodeJS Postgres getaddrinfo ENOTFOUND