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

MySql Connector 6.8.2 RC, Entity Framework 6 và Code First

Tôi đã có MySQL EF6 và Migrations và hoạt động khi mọi thứ nằm trong một dự án MVC. Tôi chia nó thành các lớp (Core [Interfaces / Entitites], Data, Services và Web) và bắt đầu gặp lỗi tương tự như Loren đã đề cập.

Phát hiện ra rằng nó không nhận chuỗi kết nối từ ứng dụng MVC. Hóa ra tất cả những gì tôi phải làm là tạo lại chuỗi kết nối trong App.config trong dự án Dữ liệu của tôi (nơi chứa DbContext và các ánh xạ).

Đây là các bước tôi đã thực hiện để mọi thứ hoạt động:

Bước 1) Sử dụng NuGet để nhập MySql.Data.Entities (phiên bản hiện tại của bài đăng này là 6.8.3.0)

Bước 2) Thêm phần sau vào App.config và / hoặc Web.config :

<connectionStrings>
    <add name="MyDB" providerName="MySql.Data.MySqlClient" connectionString="Data Source=localhost; port=3306; Initial Catalog=mydb; uid=myuser; pwd=mypass;" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>

Bước 3) Thiết lập DbContext của bạn để sử dụng MySql:

using MyApp.Core.Entities.Directory;
using MyApp.Data.Mapping;
using System.Data.Entity;

namespace MyApp.Data
{
    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class MyContext : DbContext
    {
        public MyContext() : this("MyDB") { }
        public MyContext(string connStringName) : base(connStringName) {}
        static MyContext ()
        {
            // static constructors are guaranteed to only fire once per application.
            // I do this here instead of App_Start so I can avoid including EF
            // in my MVC project (I use UnitOfWork/Repository pattern instead)
            DbConfiguration.SetConfiguration(new MySql.Data.Entity.MySqlEFConfiguration());
        }

        public DbSet<Country> Countries { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            // I have an abstract base EntityMap class that maps Ids for my entities.
            // It is used as the base for all my class mappings
            modelBuilder.Configurations.AddFromAssembly(typeof(EntityMap<>).Assembly);
            base.OnModelCreating(modelBuilder);
        }
    }
}

Bước 4) Đặt Dự án mặc định thành dự án Dữ liệu của bạn trong Bảng điều khiển Trình quản lý Gói

Bước 5) Sử dụng enable-migrations , add-migration , update-database như bạn thường làm



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tải xuống kết xuất MySQL từ dòng lệnh

  2. MySQL - Kiểm soát hàng nào được trả về bởi một nhóm bởi

  3. Cách nắm giữ chứng chỉ Amazon MySQL RDS

  4. Kiểm tra sự tồn tại của cột / khóa?

  5. pha cài đặt mysql, lỗi khi cố gắng dừng máy chủ