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

Menggunakan MariaDB dengan Entity Framework

Saya dapat menggunakan MariaDB 10 dengan Entity Framework meskipun memerlukan sedikit kerja terutama karena alat MySQL agak bermasalah.

Untuk bekerja dengan MySQL/MariaDB di Visual Studio 2010/2012 ,Anda perlu menginstal MySQL untuk Visual Studio menggunakan Penginstal MySQL . Saya menggunakan versi Web karena saya hanya ingin mengunduh konektor dan ekstensi. Setelah Anda melakukannya, Anda dapat menambahkan koneksi ke MariaDB dan membuat model EF.

Ini tidak cukup untuk menjalankan kode Anda. Pertama, Anda perlu menambahkan Konektor MySQL menggunakan NuGet.

Sayangnya, MySQL untuk Visual Studio menambahkan referensi ke versi penyedia yang lebih lama (disebutkan di sini ) dan tidak dapat memuat versi yang lebih baru. Untuk memperbaikinya, saya menambahkan bagian berikut di app.config saya:

<system.data>
   <DbProviderFactories>
     <remove invariant="MySql.Data.MySqlClient"/>
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" 
           description=".Net Framework Data Provider for MySQL" 
           type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
   </DbProviderFactories>
</system.data>

Ini menggantikan referensi lama dengan yang baru. Perhatikan bahwa saya menggunakan

<remove invariant="MySql.Data.MySqlClient"/>

tidak

<remove name="MySql Data Provider"/>

di remove elemen.

Saat ini, MySQL untuk Visual Studio tidak didukung di Visual Studio 2013

PERBARUI - 2017

Connector/.NET pada dasarnya stagnan, dengan masalah yang sama pada tahun 2013, misalnya tidak ada panggilan asinkron yang sebenarnya. Panggilan "async" palsu - panggilan tersebut dijalankan pada utas terpisah, mengalahkan tujuan utama penggunaan async . Itu saja membuatnya tidak cocok untuk aplikasi web, di mana seseorang ingin melayani permintaan sebanyak mungkin menggunakan minimum jumlah utas/CPU.

Jangankan tentang dukungan .NET Core.

Itulah sebabnya dalam beberapa tahun terakhir orang telah membangun penyedia mereka sendiri yang benar-benar asinkron. Beberapa yang lebih populer adalah:

  • MySqlConnector menawarkan penyedia yang benar-benar asinkron untuk .NET dan .NET Inti
  • Pomelo menawarkan dukungan EF Core selain MySQLConnector

Dengan masing-masing sekitar 100 ribu unduhan NuGet, versi yang sering, dan pemeliharaan aktif.

Mereka tidak "resmi", tapi pasti patut dicoba

Pembaruan Lockdown - April 2020

Tampaknya MySqlConnector dan Pomelo telah benar-benar berkembang.

Connector/.NET akhirnya merilis beberapa versi setelah hampir dua tahun dengan yang terbaru, 8.0.19, mendapatkan 233K unduhan.

MySqlConnector di sisi lain, mendapat 496K unduhan untuk versi 0.61.0. Pembaruan kecil sering terjadi, dengan yang terbaru, 0.63.2 datang 8 jam sebelum posting ini. Itu mungkin agak terlalu sering, tapi jauh lebih baik daripada 2 tahun.

Saya belum memeriksa fitur atau kompatibilitas MySql 8. Jika saya harus memilih (yang mungkin akan saya lakukan untuk sebuah proyek minggu depan), saya akan mulai dengan MySqlConnector.

Saya menduga Connector/.NET akan dipaksa untuk menawarkan pembaruan yang jauh lebih sering, untuk mengimbangi rilis .NET Core, tetapi itu hanya spekulasi pada saat ini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_ARRAY_APPEND() – Menambahkan Nilai ke JSON Array di MySQL

  2. Hubungkan Kerangka Entitas dengan MYSQL di VS2019

  3. Menukar nilai kolom di MySQL

  4. Menemukan ketergantungan fungsional

  5. Cara menggunakan indeks untuk meningkatkan kinerja kueri MySQL