Hướng dẫn mysql connector/net core - kết nối mysql/lõi mạng

Mục lục

3.1 Trình kết nối cài đặt/NET trên Windows3.1.1 Cài đặt đầu nối/mạng bằng cách sử dụng trình cài đặt MySQL.1.2 Trình kết nối cài đặt/mạng bằng cách sử dụng đầu nối cài đặt độc lập3.1.3 Trình kết nối cài đặt/mạng NUGET3 từ nguồn3.1.1 Installing Connector/NET Using MySQL Installer3.1.2 Installing Connector/NET Using the Standalone Installer3.1.3 Installing Connector/NET Using NuGet3.2 Installing Connector/NET on Unix with Mono3.3 Installing Connector/NET from Source

Trình kết nối MySQL/NET chạy trên bất kỳ nền tảng nào hỗ trợ tiêu chuẩn .NET (.NET Framework, .NET Core và Mono). .NET Framework chủ yếu được hỗ trợ trên các phiên bản gần đây của Microsoft Windows và Microsoft Windows Server.

Tùy chọn đa nền tảng:

  • .NET Core cung cấp hỗ trợ trên Windows, MacOS và Linux.

  • Nền tảng Mono nguồn mở cung cấp hỗ trợ trên Linux.

Trình kết nối/NET có sẵn để tải xuống từ trình cài đặt MySQL, dưới dạng trình cài đặt MSI độc lập hoặc từ bộ sưu tập Nuget. Mã nguồn có sẵn để tải xuống từ MYSQL Tải xuống đầu nối/net của MySQL hoặc tại GitHub từ đầu nối/kho lưu trữ ròng của MySQL.

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

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

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

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

Cấu hình

Các tính nă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

    .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

  1. Khung thực thể 6.4 Hội đồng

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

    • Ghi chú 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:

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

        dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      • Hội:

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

        Install-Package MySql.Data.EntityFramework -Version 8.0.22
      • 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/. 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.

    • Để định cấu hình Trình kết nối/hỗ trợ ròng cho EF6: 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:

      
         
           
           
         
      

      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:

  3. 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)

      [DbConfigurationType(typeof(MySqlEFConfiguration))]
    • Bảng điều khiển quản lý gói (PMC)

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

    Trình cài đặt MySQL hoặc Trình kết nối MySQL/Tệp MSI Net. & NBSP; Cài đặt Trình kết nối/NET MySQL và sau đó thêm một tham chiếu cho lắp ráp

    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    1 vào dự án của bạn. Tùy thuộc vào phiên bản .NET Framework được sử dụng, lắp ráp được lấy từ thư mục
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    3,
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    4 hoặc
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    5.

Các tính năng EF6

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

  • Máy chủ MySQL 5.6 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.

  • Khung thực thể 6 Hội đồng 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:

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

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

  • .NET Standard 2.1 (.NET Core SDK 3.1 và Visual Studio 2019 Phiên bản 16.5) enables automatic recovery from transient connection failures. To use this feature, add to the

    
       
         
         
       
    
    7 method:

    SetExecutionStrategy(MySqlProviderInvariantName.ProviderName, () => new MySqlExecutionStrategy());
  • Cấu hình dựa trên mã cung cấp cho bạn tùy chọn thực hiện cấu hình trong mã, thay vì thực hiện nó trong một tệp cấu hình, vì nó đã được thực hiện theo truyền thống. gives you the option of performing configuration in code, instead of performing it in a configuration file, as it has been done traditionally.

  • Độ phân giải phụ thuộc giới thiệu hỗ trợ cho bộ định vị dịch vụ. Một số phần của chức năng có thể được thay thế bằng các triển khai tùy chỉnh đã được đưa ra. Để thêm trình phân giải phụ thuộc, hãy sử dụng: 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());

    Những người giải quyết sau đây có thể được thêm vào:

    • 
         
           
           
         
      
      8

    • 
         
           
           
         
      
      9

    • [DbConfigurationType(typeof(MySqlEFConfiguration))]
      0

    • [DbConfigurationType(typeof(MySqlEFConfiguration))]
      1

    • [DbConfigurationType(typeof(MySqlEFConfiguration))]
      2

    • [DbConfigurationType(typeof(MySqlEFConfiguration))]
      3

    • [DbConfigurationType(typeof(MySqlEFConfiguration))]
      4

    • [DbConfigurationType(typeof(MySqlEFConfiguration))]
      5

    • [DbConfigurationType(typeof(MySqlEFConfiguration))]
      6

  • Ghi nhật ký đánh chặn/SQL cung cấp các khối xây dựng cấp thấp để đánh chặn các hoạt động khung thực thể với đăng nhập SQL đơn giản được xây dựng trên đầu: 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); };
  • DBContext hiện có thể được tạo bằng DBConnection đã được mở, cho phép các tình huống sẽ hữu ích nếu kết nối có thể được mở khi tạo ngữ cảnh (chẳng hạn như chia sẻ kết nối giữa các thành phần khi bạn không thể đảm bảo trạng thái của kết nối), 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