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

Làm cách nào để sử dụng Entity Framework 6 với MySQL trong ASP.NET 5?

Vì Web.config không còn được sử dụng với ASP.NET 5, bạn cần sử dụng cấu hình dựa trên mã để cấu hình nó thay thế. Để làm như vậy, hãy tạo một lớp mới kế thừa từ 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());
    }
}

Phần đầu tiên của cấu hình là một cuộc tấn công để đăng ký nhà cung cấp ADO.NET trong thời gian chạy, bằng cách thêm động một mục cấu hình mới vào system.data tiết diện. Điều này rất khó hiểu, nhưng dường như hoạt động chính xác.

Thêm chuỗi kết nối vào config.json chứ không phải là Web.config :

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

Sửa đổi DbContext để sử dụng đúng cấu hình và chuỗi kết nối:

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

Đăng ký MyContext trong vùng chứa nội dung phụ thuộc trong Startup.cs :

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

Sau đó, bạn có thể chỉ cần sử dụng hàm tạo chèn để lấy MyContext vào bộ điều khiển của bạn.

Thêm chi tiết trong bài đăng trên blog của tôi tại http://dan.cx/ 2015/08 / entity-framework-6-mysql-aspnet và một dự án mẫu tại 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. Doctrine 2 thêm trường mới tự động tạo các giá trị trình tự

  2. Tìm sinh nhật sắp tới với jOOQ

  3. Làm cách nào để tôi có thể Chèn dữ liệu vào Cơ sở dữ liệu MySQL?

  4. PDO:Không thể tìm thấy trình điều khiển php / mysql

  5. Một bảng có thể có nhiều khóa chính không?