Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggunakan Entity Framework 6 dengan MySQL di ASP.NET 5?

Karena Web.config tidak lagi digunakan dengan ASP.NET 5, Anda perlu menggunakan konfigurasi berbasis kode untuk mengkonfigurasinya sebagai gantinya. Untuk melakukannya, buat kelas baru yang mewarisi dari 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());
    }
}

Bagian pertama dari konfigurasi adalah peretasan untuk mendaftarkan penyedia ADO.NET pada saat runtime, dengan menambahkan entri konfigurasi baru secara dinamis ke system.data bagian. Ini sangat meretas, tetapi tampaknya berfungsi dengan benar.

Tambahkan string koneksi ke config.json daripada Web.config :

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

Ubah DbContext untuk menggunakan konfigurasi dan koneksi string yang benar:

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

Daftarkan MyContext dalam wadah injeksi ketergantungan di Startup.cs :

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

Kemudian Anda bisa menggunakan injeksi konstruktor untuk mendapatkan MyContext ke pengontrol Anda.

Lebih detail di posting blog saya di http://dan.cx/ 2015/08/entity-framework-6-mysql-aspnet , dan contoh proyek di https://github.com/Daniel15/EFExample




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memotong tabel yang dibatasi kunci asing?

  2. IllegalArgumentException:Jenis tidak boleh nol

  3. Bagaimana cara membuat penginisialisasi untuk membuat dan memigrasi database mysql?

  4. Nilai kembali ketika tidak ada baris di PDO

  5. Gabungkan satu baris ke beberapa baris di tabel lain