Hướng dẫn using mysql data mysqlclient - sử dụng dữ liệu mysql mysqlclient

Trình kết nối MYSQL/Net tích hợp hỗ trợ cho Entity Framework 6 (EF6), hiện bao gồm hỗ trợ triển khai ứng dụng đa nền tảng với phiên bản EF 6.4. Chương này mô tả cách định cấu hình và sử dụng các tính năng EF6 được triển khai trong Trình kết nối/NET.

Trong phần này:

  • Yêu cầu tối thiểu chỉ dành cho EF6 trên Windows

  • Yêu cầu tối thiểu cho EF 6.4 với hỗ trợ đa nền tảng

  • Cấu hình

  • Các tính năng EF6

  • Mã các tính năng đầu tiên

  • Ví dụ sử dụng EF6

Yêu cầu tối thiểu chỉ dành cho EF6 trên Windows

  • Yêu cầu tối thiểu cho EF 6.4 với hỗ trợ đa nền tảng

  • Cấu hình

  • Các tính năng EF6

  • Mã các tính năng đầu tiên

Yêu cầu tối thiểu cho EF 6.4 với hỗ trợ đa nền tảng

  • Cấu hình

  • Cấu hình

  • Các tính năng EF6

  • Mã các tính năng đầu tiên

Cấu hình

Các tính năng EF6

Mã các tính năng đầu tiên

  • Ví dụ sử dụng EF6

  • Đầu nối/net 6.10 hoặc 8.0.11

    Máy chủ MySQL 5.6

Khung thực thể 6 Hội đồng

  1. .NET Framework 4.5.1 (.NET Framework 4.5.2 cho đầu nối/net 8.0.22)

    
        
    
    
        
        
            
            
        
    
  2. Đầu nối/net 8.0.22

    • Khung thực thể 6.4 Hội đồng Install the NuGet package to add this reference automatically to the

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      6 or
      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      8 file during the installation. For example, to install the package for Connector/NET 8.0.22, use one of the following installation options:

      • .NET Standard 2.1 (.NET Core SDK 3.1 và Visual Studio 2019 Phiên bản 16.5)

        dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      • Ghi chú

        Install-Package MySql.Data.EntityFramework -Version 8.0.22
      • Trình phát hành MYSQL/Net 8.0 có sơ đồ đặt tên cho các gói EF6 và các gói Nuget khác với sơ đồ được sử dụng với loạt phát hành trước đó, chẳng hạn như 6.9 và 6.10. Để định cấu hình Trình kết nối/Net 6.9 hoặc 6.10 để sử dụng với EF6, hãy thay thế các tên lắp ráp và gói trong phần này bằng cách sau:

    • Hội:

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      3 Install MySQL Connector/NET and then add a reference for the
      Install-Package MySql.Data.EntityFramework -Version 8.0.22
      1 assembly to your project. Depending on the .NET Framework version used, the assembly is taken from the
      Install-Package MySql.Data.EntityFramework -Version 8.0.22
      3,
      Install-Package MySql.Data.EntityFramework -Version 8.0.22
      4, or
      Install-Package MySql.Data.EntityFramework -Version 8.0.22
      5 folder.

    • Gói Nuget:

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      4 Build Connector/NET from source and then insert the following data provider information into the
      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      6 or
      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      8 file:

      
         
           
           
         
      

      Để biết thêm thông tin về gói

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      4 Nuget và sử dụng của nó, xem https://www.nuget.org/packages/mysql.data.entity/.

      Để định cấu hình Trình kết nối/hỗ trợ ròng cho EF6:

  3. Chỉnh sửa các phần cấu hình trong tệp

    dotnet add package MySql.Data.EntityFramework -Version 8.0.22
    6 để thêm chuỗi kết nối và nhà cung cấp đầu nối/mạng.

    • Áp dụng tham chiếu lắp ráp bằng một trong các kỹ thuật sau:

      [DbConfigurationType(typeof(MySqlEFConfiguration))]
    • Gói nuget. & Nbsp; Cài đặt gói NUGET để tự động thêm tham chiếu này vào tệp

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      6 hoặc
      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      8 trong quá trình cài đặt. Ví dụ: để cài đặt gói cho Trình kết nối/NET 8.0.22, hãy sử dụng một trong các tùy chọn cài đặt sau:

    • Giao diện dòng lệnh (CLI)

    Bảng điều khiển quản lý gói (PMC)

Các tính năng EF6

Mã các tính năng đầu tiên

  • Ví dụ sử dụng EF6 in Connector/NET 8.0.22 implements EF 6.4 as the initial provider version to include Linux and macOS compatibility with .NET Standard 2.1 from Microsoft.

  • Đầu nối/net 6.10 hoặc 8.0.11 adds support for the task-based asynchronous patterns that have been available since .NET 4.5. The new asynchronous methods supported by Connector/NET are:

    • Máy chủ MySQL 5.6

    • Khung thực thể 6 Hội đồng

    • .NET Framework 4.5.1 (.NET Framework 4.5.2 cho đầu nối/net 8.0.22)

  • Đầu nối/net 8.0.22 enables automatic recovery from transient connection failures. To use this feature, add to the

    
       
         
         
       
    
    7 method:

    SetExecutionStrategy(MySqlProviderInvariantName.ProviderName, () => new MySqlExecutionStrategy());
  • Khung thực thể 6.4 Hội đồng gives you the option of performing configuration in code, instead of performing it in a configuration file, as it has been done traditionally.

  • .NET Standard 2.1 (.NET Core SDK 3.1 và Visual Studio 2019 Phiên bản 16.5) introduces support for the Service Locator. Some pieces of functionality that can be replaced with custom implementations have been factored out. To add a dependency resolver, use:

    AddDependencyResolver(new MySqlDependencyResolver());

    Ghi chú

    • Trình phát hành MYSQL/Net 8.0 có sơ đồ đặt tên cho các gói EF6 và các gói Nuget khác với sơ đồ được sử dụng với loạt phát hành trước đó, chẳng hạn như 6.9 và 6.10. Để định cấu hình Trình kết nối/Net 6.9 hoặc 6.10 để sử dụng với EF6, hãy thay thế các tên lắp ráp và gói trong phần này bằng cách sau:

    • Hội:

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      3

    • Gói Nuget:

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      4

    • Để biết thêm thông tin về gói

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      4 Nuget và sử dụng của nó, xem https://www.nuget.org/packages/mysql.data.entity/.

    • Để định cấu hình Trình kết nối/hỗ trợ ròng cho EF6:

    • Chỉnh sửa các phần cấu hình trong tệp

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      6 để thêm chuỗi kết nối và nhà cung cấp đầu nối/mạng.

    • Áp dụng tham chiếu lắp ráp bằng một trong các kỹ thuật sau:

    • Gói nuget. & Nbsp; Cài đặt gói NUGET để tự động thêm tham chiếu này vào tệp

      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      6 hoặc
      dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      8 trong quá trình cài đặt. Ví dụ: để cài đặt gói cho Trình kết nối/NET 8.0.22, hãy sử dụng một trong các tùy chọn cài đặt sau:

    • Giao diện dòng lệnh (CLI)

  • Bảng điều khiển quản lý gói (PMC) provides low-level building blocks for interception of Entity Framework operations with simple SQL logging built on top:

    myContext.Database.Log = delegate(string message) { Console.Write(message); };
  • Visual Studio với Trình quản lý gói Nuget. Đối với tùy chọn này, chọn

    dotnet add package MySql.Data.EntityFramework -Version 8.0.22
    9 làm nguồn gói, tìm kiếm
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    0 và cài đặt phiên bản ổn định của
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    1., which enables scenarios where it would be helpful if the connection could be open when creating the context (such as sharing a connection between components when you cannot guarantee the state of the connection)

      [DbConfigurationType(typeof(MySqlEFConfiguration))]
      class JourneyContext : DbContext
      {
        public DbSet MyPlaces { get; set; }
    
        public JourneyContext()
          : base()
        {
    
        }
    
        public JourneyContext(DbConnection existingConnection, bool contextOwnsConnection)
          : base(existingConnection, contextOwnsConnection)
        {
    
        }
      }
    
      using (MySqlConnection conn = new MySqlConnection(""))
      {
        conn.Open();
        ...
    
        using (var context = new JourneyContext(conn, false))
        {
          ...
        }
      }
  • Hỗ trợ giao dịch được cải thiện cung cấp hỗ trợ cho một giao dịch bên ngoài khung cũng như các cách cải tiến để tạo giao dịch trong khung thực thể. Bắt đầu với Entity Framework 6,

    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    7 sẽ được bọc theo mặc định lệnh trong một giao dịch nếu chưa có mặt. Có sự quá tải của phương pháp này cho phép người dùng ghi đè hành vi này nếu muốn. Thực hiện các thủ tục được lưu trữ có trong mô hình thông qua các API như
    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    8 cũng vậy. Cũng có thể chuyển một giao dịch hiện có cho bối cảnh. provides support for a transaction external to the framework as well as improved ways of creating a transaction within the Entity Framework. Starting with Entity Framework 6,
    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    7 will wrap by default the command in a transaction if one was not already present. There are overloads of this method that allow users to override this behavior if wished. Execution of stored procedures included in the model through APIs such as
    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    8 does the same. It is also possible to pass an existing transaction to the context.

  • Dbset.addrange/removerange cung cấp một cách tối ưu hóa để thêm hoặc xóa nhiều thực thể khỏi một bộ. provides an optimized way to add or remove multiple entities from a set.

Mã các tính năng đầu tiên

Sau đây là mã mới các tính năng đầu tiên được hỗ trợ bởi Trình kết nối/NET:

  • Mã đầu tiên ánh xạ để chèn/cập nhật/xóa các quy trình được lưu trữ được hỗ trợ: supported:

    dotnet add package MySql.Data.EntityFramework -Version 8.0.22
    0
  • Các tập lệnh di chuyển IDEmpotent cho phép bạn tạo tập lệnh SQL có thể nâng cấp cơ sở dữ liệu ở bất kỳ phiên bản nào lên phiên bản mới nhất. Để làm như vậy, hãy chạy lệnh

    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    9 trong bảng điều khiển Trình quản lý gói. allow you to generate an SQL script that can upgrade a database at any version up to the latest version. To do so, run the
    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    9
    command in Package Manager Console.

  • Bảng lịch sử di chuyển có thể định cấu hình cho phép bạn tùy chỉnh định nghĩa của bảng Lịch sử Di chuyển. allows you to customize the definition of the migrations history table.

Ví dụ sử dụng EF6

Ví dụ mã C# sau đây đại diện cho cấu trúc của mô hình Framework 6 thực thể.

dotnet add package MySql.Data.EntityFramework -Version 8.0.22
1

Ví dụ mã C# theo sau cho thấy cách sử dụng các thực thể từ mô hình trước đó trong một ứng dụng lưu trữ dữ liệu trong bảng MySQL.

dotnet add package MySql.Data.EntityFramework -Version 8.0.22
2