Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng MariaDB với Entity Framework

Tôi đã có thể sử dụng MariaDB 10 với Entity Framework mặc dù nó yêu cầu một chút công việc chủ yếu là do các công cụ MySQL có một chút lỗi.

Để làm việc với MySQL / MariaDB trong Visual Studio 2010/2012 , bạn cần cài đặt MySQL cho Visual Studio sử dụng MySQL Installer . Tôi đã sử dụng phiên bản Web vì tôi chỉ muốn tải xuống các trình kết nối và tiện ích mở rộng. Sau khi thực hiện việc này, bạn có thể thêm các kết nối vào MariaDB và tạo các mô hình EF.

Tuy nhiên, điều này là không đủ để chạy mã của bạn. Trước tiên, bạn cần thêm MySQL Connector bằng NuGet.

Thật không may, MySQL cho Visual Studio thêm tham chiếu đến phiên bản nhà cung cấp cũ hơn (đã đề cập tại đây ) và không thể tải phiên bản mới hơn. Để khắc phục điều này, tôi đã thêm phần sau vào app.config của mình:

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

Điều này thay thế tham chiếu cũ bằng tham chiếu mới. Lưu ý rằng tôi đã sử dụng

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

không

<remove name="MySql Data Provider"/>

trong remove phần tử.

Hiện tại, MySQL cho Visual Studio không được hỗ trợ trong Visual Studio 2013

CẬP NHẬT - 2017

Connector / .NET về cơ bản là trì trệ, với các vấn đề tương tự mà nó gặp phải vào năm 2013, ví dụ như không có lệnh gọi không đồng bộ thực sự. Các lệnh gọi "async" là giả mạo - chúng được chạy trên các chuỗi riêng biệt, đánh bại mục đích sử dụng async . Điều đó chỉ làm cho nó không phù hợp với các ứng dụng web, nơi người ta muốn gửi càng nhiều yêu cầu càng tốt bằng cách sử dụng tối thiểu số luồng / CPU.

Đừng bận tâm về hỗ trợ .NET Core.

Đó là lý do tại sao trong vài năm qua, mọi người đã xây dựng các nhà cung cấp thực sự không đồng bộ của riêng họ. Một số cái phổ biến hơn là:

  • MySqlConnector cung cấp một nhà cung cấp thực sự không đồng bộ cho .NET .NET Core
  • Pomelo cung cấp hỗ trợ EF Core trên MySQLConnector

Với khoảng 100 nghìn NuGet tải xuống mỗi phiên bản, các phiên bản thường xuyên và bảo trì tích cực.

Chúng không phải là "chính thức", nhưng chắc chắn đáng thử

Cập nhật Lockdown - Tháng 4 năm 2020

Có vẻ như MySqlConnector và Pomelo đã thực sự thành công.

Connector / .NET cuối cùng đã phát hành một vài phiên bản sau gần hai năm với phiên bản mới nhất, 8.0.19, nhận được 233K tải xuống.

MySqlConnector mặt khác, nhận được 496K tải xuống cho phiên bản 0.61.0. Các bản cập nhật nhỏ thường xuyên xảy ra, với bản cập nhật mới nhất, 0.63.2 đến 8 giờ trước bài đăng này. Điều đó có lẽ hơi quá thường xuyên, nhưng tốt hơn nhiều so với 2 năm.

Tôi chưa kiểm tra các tính năng hoặc khả năng tương thích của MySql 8. Nếu tôi phải chọn (mà tôi có thể sẽ làm cho một dự án vào tuần tới), tôi sẽ bắt đầu với MySqlConnector.

Tôi nghi ngờ Connector / .NET sẽ buộc phải cung cấp các bản cập nhật thường xuyên hơn đang diễn ra, để bắt kịp với các bản phát hành .NET Core, nhưng đó chỉ là suy đoán tại thời điểm này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sao chép bảng trong MySQL

  2. Các thanh kép (||) trong SQL có nghĩa là gì?

  3. truy vấn mysql để chọn mọi thứ ngoại trừ

  4. php mysql_connect Cảnh báo tắt

  5. PHP CRUD Tạo, chỉnh sửa, cập nhật và xóa bài đăng với cơ sở dữ liệu MySQL