Để VS 2015 kết nối với MySql, bạn cần sử dụng phiên bản mới hơn của thư viện MySql. Mặc dù đó có vẻ là một câu trả lời khá đơn giản, nhưng thành thật mà nói, tôi đã gặp phải một số vấn đề trên đường đi. Với ý nghĩ đó, tôi sẽ viết ra 1 quy trình luôn hoạt động hiệu quả đối với tôi trong thời gian EF làm việc với MySql và VS2015. Vì vậy, không cần phải quảng cáo thêm, đây là các bước tôi đã thực hiện để điều này hoạt động.
1) Đảm bảo cài đặt trình kết nối MySql được cập nhật
2) Tạo dự án web của bạn
3) Mở Nuget
4) Cài đặt Khung thực thể
5) Tìm kiếm MySql
6) Cài đặt MySql.Data
7) Cài đặt MySql.Data.Entity
8) Cài đặt MySql.Data.Entities
9) Cài đặt MySql.Web
10) Đi tới các tham chiếu cho dự án và xóa MySql.Data.Entity.EF6
11) Kiểm tra các phiên bản của thư viện MySql.Data và MySql.Web. Nếu chúng dưới 6.9.6, hãy xóa chúng
12) Thêm tham chiếu mới bằng cách duyệt đến vị trí cài đặt cho trình kết nối mysql cho phiên bản .NET framework của bạn (của tôi là C:\ Program Files (x86) \ MySQL \ Connector.NET 6.9 \ Assemblies \ v4.5) và lấy MySql.Data.Entity.EF6.dll (phiên bản của tôi là 6.9.6, hãy ghi nhớ điều đó khi chúng tôi thay đổi web.config sau này)
13) Nếu các thư viện khác cũng là phiên bản cũ hơn, hãy thêm các tham chiếu đến chúng bằng cách duyệt đến thư mục gói trong giải pháp của bạn và lấy các tệp từ các thư mục tương ứng của chúng. Tôi thường không phải làm việc này.
14) Bây giờ Web.config sẽ cần được chỉnh sửa. Bước đầu tiên là thay thế phần khung thực thể bằng mã này (thay đổi số phiên bản thành phiên bản hiện tại của bạn. Xin lưu ý rằng tôi đã tìm thấy đoạn mã này trên web vài tuần trước và không có liên kết gốc. Tôi xin lỗi vì liên kết gốc người đăng thông tin này.)
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>
15) Đảm bảo rằng phần DbProviderFactories của bạn khớp với
<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.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
16) Lưu và xây dựng
Tôi không chắc có bao nhiêu bước trong số này thực sự cần thiết nhưng sau khi thực hiện xong một lần, tôi thực sự phải hoàn thành một số công việc và không có thời gian để thu hẹp mọi thứ hơn nữa. Hy vọng rằng điều đó sẽ giúp bạn tiến lên.
P.S. Nếu sau tất cả những điều đó, bạn lướt qua trình hướng dẫn và nó chỉ biến mất trước khi hiển thị cho bạn các bảng trong cơ sở dữ liệu để tạo các thực thể từ đó thì đó có thể là một trong ba vấn đề tôi đã gặp phải. Máy chủ cơ sở dữ liệu không thể liên lạc được. Người dùng không có các quyền cần thiết trên cơ sở dữ liệu. Đã thêm sai phiên bản MySql.Data.Entity.EF6 làm tham chiếu hoặc số phiên bản không đúng trong web.config. Nếu tôi lấy tệp này từ thư mục gói của giải pháp của mình, tôi thường gặp sự cố thông báo bị hủy bỏ-wizard-with-no-error-message này. Việc lấy nó từ thư mục cài đặt MySql luôn hiệu quả với tôi.