Hướng dẫn mysql net 5 - mysql net 5

  Asp.net có thể sử dụng rất nhiều database, không riêng gì Ms sql servee, mysql ..... Các bạn làm theo bước sau để có thể sử dụng c# để code thêm dữ liệu vào database.

Hướng dẫn mysql net 5 - mysql net 5

Có phần lưu ý : phiên bản MySQL Connector từ version 6 trở lên đòi hỏi phải sử dụng new password của mysql, nếu bạn dùng server win 2008, plesk 9.3 như mình thì khi mình nâng cấp dùng MySQL Connector phiên bản 6.8.4 thì phải set password mới cho username khai báo trên plesk ! Hơi mất công ! nên các bạn lưu ý ! Mình gặp trường hợp này loay hoay rất lâu tìm ra vấn đề.MySQL Connector từ version 6 trở lên đòi hỏi phải sử dụng new password của mysql, nếu bạn dùng server win 2008, plesk 9.3 như mình thì khi mình nâng cấp dùng MySQL Connector phiên bản 6.8.4 thì phải set password mới cho username khai báo trên plesk ! Hơi mất công ! nên các bạn lưu ý ! Mình gặp trường hợp này loay hoay rất lâu tìm ra vấn đề.

 Và điều quan trọng nhất là connectstring

lưu ý pooling=false < mình thiều dòng này khi insert dữ liệu vào nếu có lỗi hay gì nó ko bao mà cứ connect time rất lâu. Set này vào thì khi bạn insert,update, delete gì nếu lỗi thì trả ra ngay.

In order to connect to MySQL Server with .NET in C# or ASP.NET:MySQL Server with .NET in C# or ASP.NET:

    • You need to download MySQL Connector/Net .MySQL Connector/Net .
    • After you add a reference to your project, it is probably in C:\Program Files\MySQL\MySQL Connector Net 5.0.7\Binaries\.NET 2.0 folder, add the MySql.Data.dll file as a reference.
    • Make your connection string, the following code will shows a standard MySQL connection string.connection string, the following code will shows a standard MySQL connection string.

Hướng dẫn mysql net 5 - mysql net 5
Collapse | Copy Code | Copy Code

using MySql.Data.MySqlClient;
public static string GetConnectionString()
{
  string connStr = String.Format("server={0};user id={1}; password={2};" + 
    "database=yourdb; pooling=false", "yourserver",
    "youruser", "yourpass");

  return connStr;
}
    • Then create an instance from
      MySql.Data.MySqlClient.MySqlConnection mycon = 
        new MySqlConnection( GetConnectionString());
      6 as shown below.

Hướng dẫn mysql net 5 - mysql net 5
Collapse | Copy Code | Copy Code

MySql.Data.MySqlClient.MySqlConnection mycon = 
  new MySqlConnection( GetConnectionString());
    • Then create an instance from
      MySql.Data.MySqlClient.MySqlConnection mycon = 
        new MySqlConnection( GetConnectionString());
      6 as shown below.

Hướng dẫn mysql net 5 - mysql net 5
Collapse | Copy Code | Copy Code

if(mycon .State != ConnectionState.Open)
try
{
  mycon .Open();
}
catch (MySqlException ex)
{
  throw (ex);
}

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

      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      1 or
      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      3 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:

        MySql.Data.MySqlClient.MySqlConnection mycon = 
          new MySqlConnection( GetConnectionString());
        8

        Install-Package MySql.Data.EntityFramework -Version 8.0.22
      • Gói Nuget:

        MySql.Data.MySqlClient.MySqlConnection mycon = 
          new MySqlConnection( GetConnectionString());
        9

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

      MySql.Data.MySqlClient.MySqlConnection mycon = 
        new MySqlConnection( GetConnectionString());
      9 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
      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      6 assembly to your project. Depending on the .NET Framework version used, the assembly is taken from the
      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      8,
      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      9, or
      
          
      
      
          
          
              
              
          
      
      0 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

      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      1 or
      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      3 file:

      
         
           
           
         
      

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

      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      1 để 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

    if(mycon .State != ConnectionState.Open)
    try
    {
      mycon .Open();
    }
    catch (MySqlException ex)
    {
      throw (ex);
    }
    1 hoặc
    if(mycon .State != ConnectionState.Open)
    try
    {
      mycon .Open();
    }
    catch (MySqlException ex)
    {
      throw (ex);
    }
    3 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

      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      4 làm nguồn gói, tìm kiếm
      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      5 và cài đặt phiên bản ổn định của
      if(mycon .State != ConnectionState.Open)
      try
      {
        mycon .Open();
      }
      catch (MySqlException ex)
      {
        throw (ex);
      }
      6.

    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

    if(mycon .State != ConnectionState.Open)
    try
    {
      mycon .Open();
    }
    catch (MySqlException ex)
    {
      throw (ex);
    }
    6 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
    if(mycon .State != ConnectionState.Open)
    try
    {
      mycon .Open();
    }
    catch (MySqlException ex)
    {
      throw (ex);
    }
    8,
    if(mycon .State != ConnectionState.Open)
    try
    {
      mycon .Open();
    }
    catch (MySqlException ex)
    {
      throw (ex);
    }
    9 hoặc
    
        
    
    
        
        
            
            
        
    
    0.

Các tính năng EF6

Sau đây là các tính năng mới trong Entity Framework 6 được triển khai trong Trình kết nối/NET:

  • Hỗ trợ đa nền tảng trong Trình kết nối/NET 8.0.22 thực hiện EF 6.4 là phiên bản nhà cung cấp ban đầu để bao gồm khả năng tương thích Linux và MacOS với Standard 2.1 từ Microsoft. 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.

  • ASYNC Truy vấn và lưu thêm hỗ trợ cho các mẫu không đồng bộ dựa trên nhiệm vụ đã có sẵn kể từ .NET 4.5. Các phương thức không đồng bộ mới được kết nối/NET hỗ trợ là: 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:

    • 
          
      
      
          
          
              
              
          
      
      9

    • dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      0

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

  • Khả năng phục hồi kết nối / logic thử lại cho phép phục hồi tự động từ các lỗi kết nối thoáng qua. Để sử dụng tính năng này, thêm vào phương thức

    dotnet add package MySql.Data.EntityFramework -Version 8.0.22
    2: enables automatic recovery from transient connection failures. To use this feature, add to the
    dotnet add package MySql.Data.EntityFramework -Version 8.0.22
    2 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:

    MySql.Data.MySqlClient.MySqlConnection mycon = 
      new MySqlConnection( GetConnectionString());
    0

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

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

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

    • dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      5

    • dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      6

    • dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      7

    • dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      8

    • dotnet add package MySql.Data.EntityFramework -Version 8.0.22
      9

    • Install-Package MySql.Data.EntityFramework -Version 8.0.22
      0

    • Install-Package MySql.Data.EntityFramework -Version 8.0.22
      1

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

    MySql.Data.MySqlClient.MySqlConnection mycon = 
      new MySqlConnection( GetConnectionString());
    1
  • 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)

    MySql.Data.MySqlClient.MySqlConnection mycon = 
      new MySqlConnection( GetConnectionString());
    2
  • 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,

    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    2 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 quy trình được lưu trữ có trong mô hình thông qua các API như
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    3 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,
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    2 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
    Install-Package MySql.Data.EntityFramework -Version 8.0.22
    3 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:

    MySql.Data.MySqlClient.MySqlConnection mycon = 
      new MySqlConnection( GetConnectionString());
    3
  • 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

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

MySql.Data.MySqlClient.MySqlConnection mycon = 
  new MySqlConnection( GetConnectionString());
4

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.

MySql.Data.MySqlClient.MySqlConnection mycon = 
  new MySqlConnection( GetConnectionString());
5