Làm cách nào để kết nối với cơ sở dữ liệu MySQL trong .NET Core?

Để kết nối với cơ sở dữ liệu MySQL trong. MẠNG 5, ASP. NET lõi và. NET, chúng ta có thể sử dụng MySQL. Thư viện dữ liệu được xuất bản bởi MySQL. Bài viết này cung cấp hướng dẫn từng bước kết nối với MySQL bằng ngôn ngữ lập trình C#.  

NET hoặc. NET Core SDK được yêu cầu cho các bước sau.  

Đối với bảng mẫu được sử dụng trong ví dụ sau, nó được tạo như một phần của hướng dẫn này. con trăn. Tải dữ liệu từ MySQL. Tham khảo bài viết đó để tìm hiểu thông tin lược đồ của bảng mẫu.  

Tạo một dự án thử nghiệm

Thực hiện theo các bước sau để tạo dự án thử nghiệm tham chiếu MySQL. thư viện dữ liệu.  

  1. Tạo một dự án bằng lệnh sau và thay đổi thư mục thành thư mục đã tạo.
    mkdir dotnetcore-mysql
    cd dotnetcore-mysql
  2. Chạy lệnh sau để tạo một dự án giao diện điều khiển.
    dotnet new console

    Lệnh này sẽ tạo một dự án chứa Chương trình. cs với nội dung sau

    using System;
    
    namespace dotnetcore_mysql
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Hello World!");
            }
        }
    }
  3. Thêm một tham chiếu gói vào MySQL. Thư viện dữ liệu bằng lệnh sau.
    dotnet add package MySQL.Data

    Phiên bản 8. 0. 23 được chọn khi bài viết này được xuất bản.  

  4. Các kiểu tham chiếu trong MySQL. Dữ liệu. Không gian tên MySqlClient bằng cách thêm dòng sau vào phần trên cùng của Chương trình. tập tin cs.
    using MySql.Data.MySqlClient;
  5. Bây giờ hãy tạo một hàm tĩnh có tên ConnectToMySQL trong lớp Chương trình.
    static void ConnectToMySQL()
            {
                MySqlConnection conn = null;
                var sb = new MySqlConnectionStringBuilder
                {
                    Server = "127.0.0.1",
                    UserID = "hive",
                    Password = "hive",
                    Port = 10101,
                    Database = "test_db"
                };
    
                try
                {
                    Console.WriteLine(sb.ConnectionString);
                    conn = new MySqlConnection(sb.ConnectionString);
                    conn.Open();
    
                    var cmd = conn.CreateCommand();
                    cmd.CommandText = "select * from test_table";
                    var reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                    while (reader.Read())
                    {
                        Console.WriteLine("id={0}, value={1}", reader.GetInt32("id"), reader.GetString("value"));
                    }
                }
                catch (MySqlException ex)
                {
                    Console.Write(ex.Message);
                }
                finally
                {
                    if (conn != null)
                        conn.Close();
                }
            }

    Hàm này thiết lập kết nối bằng trình tạo chuỗi kết nối; .  

    Trong bài viết này, chúng ta sẽ tạo một ASP đơn giản. NET Core MVC Web với MySQL làm cơ sở dữ liệu thay vì SQL Server

    MySQL là một trong những cơ sở dữ liệu được sử dụng rộng rãi nhất và nó thậm chí còn có một nhánh nguồn mở có tên là MariaDB. May mắn thay, với các nhà cung cấp cơ sở dữ liệu khác nhau cho Entity Framework Core, chúng ta có thể dễ dàng định cấu hình EF để hoạt động với các cơ sở dữ liệu bao gồm MySQL và MariaDB

    điều kiện tiên quyết

    1. MySQL - Trong hướng dẫn này, tôi sẽ sử dụng XAMPP
    2. Visual Studio 2022 đã cài đặt các mẫu phát triển Web
    3. NET Core 6 hoặc. NET lõi 5

    Tạo một dự án mới

    Mở Visual Studio -> Tạo dự án mới -> Chọn> Ứng dụng web (Trình điều khiển chế độ xem mô hình)

    Làm cách nào để kết nối với cơ sở dữ liệu MySQL trong .NET Core?
    báo cáo quảng cáo này


    Đặt mua

    Tham gia bản tin để nhận thông tin cập nhật mới nhất

    Thành công

    Tuyệt vời. Kiểm tra hộp thư đến của bạn và nhấp vào liên kết

    Lỗi

    Vui lòng nhập địa chỉ email hợp lệ


    Bài đăng này cho thấy đi qua các bước để kết nối một. NET 6 sang MySQL bằng cách sử dụng Entity Framework Core và tự động tạo/cập nhật cơ sở dữ liệu MySQL từ mã bằng cách sử dụng di chuyển EF Core

    Chúng ta sẽ bắt đầu với một ví dụ. NET 6 CRUD từ một hướng dẫn tôi đã đăng gần đây, nó sử dụng nhà cung cấp db EF Core InMemory theo mặc định để thử nghiệm, chúng tôi sẽ cập nhật nó để kết nối với cơ sở dữ liệu MySQL và chạy di chuyển EF Core để tự động tạo cơ sở dữ liệu và bảng từ mã. Để biết chi tiết đầy đủ về. NET CRUD API xem. MẠNG 6. 0 - Ví dụ và Hướng dẫn API CRUD

    Nội dung hướng dẫn

    Công cụ cần thiết cho hướng dẫn này

    Để làm theo các bước trong hướng dẫn này, bạn sẽ cần những thứ sau

    • NET SDK - bao gồm. NET runtime và các công cụ dòng lệnh
    • Visual Studio Code - trình chỉnh sửa mã chạy trên Windows, Mac và Linux. Nếu bạn có một trình chỉnh sửa mã ưa thích khác thì cũng tốt thôi
    • Tiện ích mở rộng C# cho Visual Studio Code - thêm hỗ trợ cho Mã VS để phát triển. ứng dụng NET
    • MySQL - bạn sẽ cần quyền truy cập vào phiên bản máy chủ MySQL đang chạy để API kết nối, nó có thể ở xa (e. g. Azure, AWS, v.v.) hoặc trên máy cục bộ của bạn. Máy chủ cộng đồng có sẵn miễn phí từ https. // nhà phát triển. mysql. com/downloads/mysql/, đảm bảo nó đã được khởi động để API có thể kết nối với nó. Hướng dẫn cài đặt có sẵn tại https. // nhà phát triển. mysql. com/doc/refman/8. 0/vi/đang cài đặt. html

    Tải xuống và chạy ví dụ. NET API

    Thực hiện theo các bước sau để tải xuống và chạy. NET 6 CRUD API trên máy cục bộ của bạn với cơ sở dữ liệu EF Core InMemory mặc định

    1. Tải xuống hoặc sao chép mã dự án hướng dẫn từ https. //github. com/cornflourblue/dotnet-6-crud-api
    2. Bắt đầu api bằng cách chạy dotnet run từ dòng lệnh trong thư mục gốc của dự án (nơi WebApi. csproj được đặt), bạn sẽ thấy thông báo Now listening on: http://localhost:4000
    3. Bạn có thể kiểm tra API trực tiếp bằng một công cụ như Postman hoặc kết nối nó với ví dụ hoặc ứng dụng có sẵn

    Bắt đầu ở chế độ gỡ lỗi

    Bạn cũng có thể khởi động ứng dụng ở chế độ gỡ lỗi trong Mã VS bằng cách mở thư mục gốc của dự án trong Mã VS và nhấn F5 hoặc bằng cách chọn Gỡ lỗi -> Bắt đầu gỡ lỗi từ menu trên cùng, chạy ở chế độ gỡ lỗi cho phép bạn đính kèm các điểm dừng để tạm dừng thực thi và . Để biết hướng dẫn chi tiết bao gồm một video demo ngắn, hãy xem Mã VS +. NET - Gỡ lỗi một. NET Web App trong Visual Studio Code

    Cập nhật. NET API để sử dụng MySQL


    Thêm nhà cung cấp cơ sở dữ liệu MySQL từ NuGet

    Chạy lệnh sau từ thư mục gốc của dự án để cài đặt nhà cung cấp cơ sở dữ liệu EF Core cho MySQL từ NuGet

    dotnet add package Pomelo.EntityFrameworkCore.MySql


    Thêm chuỗi kết nối vào cài đặt ứng dụng

    Mở tệp appsettings.json và thêm mục nhập "ConnectionStrings" với mục nhập con cho chuỗi kết nối MySQL (e. g. "WebApiDatabase"), chuỗi kết nối phải ở định dạng "server=[DB SERVER URL]; database=[DB NAME]; user=[USERNAME]; password=[PASSWORD]"

    Khi di chuyển EF Core tạo cơ sở dữ liệu, giá trị

    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    0 sẽ là tên của cơ sở dữ liệu được tạo trong MySQL

    Tệp appsettings.json được cập nhật với chuỗi kết nối sẽ giống như thế này

    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }


    Cập nhật bối cảnh dữ liệu để sử dụng MySQL

    Lớp

    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    2 đặt tại
    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    3 được sử dụng để truy cập dữ liệu ứng dụng thông qua Entity Framework. Nó bắt nguồn từ lớp Entity Framework
    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    4 và có thuộc tính public
    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    5 để truy cập và quản lý dữ liệu người dùng

    Cập nhật phương pháp

    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    6 để kết nối với MySQL thay vì cơ sở dữ liệu trong bộ nhớ bằng cách thay thế
    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    7 bằng
    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    8

    Lớp

    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    2 được cập nhật sẽ trông như thế này

    namespace WebApi.Helpers;
    
    using Microsoft.EntityFrameworkCore;
    using WebApi.Entities;
    
    public class DataContext : DbContext
    {
        protected readonly IConfiguration Configuration;
    
        public DataContext(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            // connect to mysql with connection string from app settings
            var connectionString = Configuration.GetConnectionString("WebApiDatabase");
            options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
        }
    
        public DbSet Users { get; set; }
    }

    Tạo cơ sở dữ liệu MySQL từ mã với EF Core Migration


    Cài đặt công cụ dotnet ef

    Các. NET Entity Framework Core (_______17_______0) được sử dụng để tạo di chuyển EF Core, để cài đặt các công cụ EF Core chạy trên toàn cầu

    namespace WebApi.Helpers;
    
    using Microsoft.EntityFrameworkCore;
    using WebApi.Entities;
    
    public class DataContext : DbContext
    {
        protected readonly IConfiguration Configuration;
    
        public DataContext(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            // connect to mysql with connection string from app settings
            var connectionString = Configuration.GetConnectionString("WebApiDatabase");
            options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
        }
    
        public DbSet Users { get; set; }
    }
    1 hoặc để cập nhật chạy
    namespace WebApi.Helpers;
    
    using Microsoft.EntityFrameworkCore;
    using WebApi.Entities;
    
    public class DataContext : DbContext
    {
        protected readonly IConfiguration Configuration;
    
        public DataContext(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            // connect to mysql with connection string from app settings
            var connectionString = Configuration.GetConnectionString("WebApiDatabase");
            options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
        }
    
        public DbSet Users { get; set; }
    }
    2. Để biết thêm thông tin về các công cụ EF Core, hãy xem https. // tài liệu. Microsoft. com/ef/core/cli/dotnet

    Thêm gói EF Core Design từ NuGet

    Chạy lệnh sau từ thư mục gốc của dự án để cài đặt gói thiết kế EF Core, nó cung cấp hỗ trợ công cụ dòng lệnh đa nền tảng và được sử dụng để tạo di chuyển EF Core

    dotnet add package Microsoft.EntityFrameworkCore.Design


    Tạo di chuyển EF Core

    Tạo các tệp di chuyển EF Core mới bằng cách chạy lệnh

    namespace WebApi.Helpers;
    
    using Microsoft.EntityFrameworkCore;
    using WebApi.Entities;
    
    public class DataContext : DbContext
    {
        protected readonly IConfiguration Configuration;
    
        public DataContext(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            // connect to mysql with connection string from app settings
            var connectionString = Configuration.GetConnectionString("WebApiDatabase");
            options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
        }
    
        public DbSet Users { get; set; }
    }
    3 từ thư mục gốc của dự án (nơi cài đặt WebApi. csproj), những lần di chuyển này sẽ tạo cơ sở dữ liệu và bảng cho. NET lõi API

    Thực hiện di chuyển EF Core

    Chạy lệnh

    namespace WebApi.Helpers;
    
    using Microsoft.EntityFrameworkCore;
    using WebApi.Entities;
    
    public class DataContext : DbContext
    {
        protected readonly IConfiguration Configuration;
    
        public DataContext(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            // connect to mysql with connection string from app settings
            var connectionString = Configuration.GetConnectionString("WebApiDatabase");
            options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
        }
    
        public DbSet Users { get; set; }
    }
    4 từ thư mục gốc của dự án để thực hiện di chuyển EF Core và tạo cơ sở dữ liệu cũng như bảng trong MySQL

    Kiểm tra MySQL và bây giờ bạn sẽ thấy cơ sở dữ liệu của mình với các bảng

    {
        "ConnectionStrings": {
            "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
        },
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft.AspNetCore": "Warning"
            }
        }
    }
    5 và
    namespace WebApi.Helpers;
    
    using Microsoft.EntityFrameworkCore;
    using WebApi.Entities;
    
    public class DataContext : DbContext
    {
        protected readonly IConfiguration Configuration;
    
        public DataContext(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            // connect to mysql with connection string from app settings
            var connectionString = Configuration.GetConnectionString("WebApiDatabase");
            options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString));
        }
    
        public DbSet Users { get; set; }
    }
    6

    Khởi động lại. MẠNG 6. 0 API CRUD

    Dừng và khởi động lại API bằng lệnh dotnet run từ thư mục gốc của dự án, bạn sẽ thấy thông báo Now listening on: http://localhost:4000 và API bây giờ sẽ được kết nối với MySQL


    Đăng ký hoặc theo dõi tôi để cập nhật

    Đăng ký kênh YouTube của tôi hoặc theo dõi tôi trên Twitter, Facebook hoặc GitHub để được thông báo khi tôi đăng nội dung mới

    Khác với mã hóa

    Tôi hiện đang cố gắng đi du lịch vòng quanh nước Úc bằng xe máy với vợ tôi Tina trên một cặp Royal Enfield Himalayan. Bạn có thể theo dõi cuộc phiêu lưu của chúng tôi trên YouTube, Instagram và Facebook

    Bạn có thể sử dụng MySQL với. NET lõi?

    NET Core và MySQL đều là công nghệ mã nguồn mở và miễn phí. ASP mới. NET Core có thể chạy trên Linux và trong Bộ chứa Linux và MySQL là một trong những cơ sở dữ liệu dễ dàng nhất để bắt đầu với . Điều này làm cho sự kết hợp của ASP. NET Core và MySQL một sự kết hợp khá hấp dẫn.

    Làm cách nào để kết nối với cơ sở dữ liệu MySQL trong asp net C#?

    Để kết nối với cơ sở dữ liệu MySQL bằng ASP. MẠNG .
    Tìm chuỗi kết nối cơ sở dữ liệu của bạn (Plesk). .
    Sử dụng Microsoft Visual Studio. .
    Thêm một tham chiếu đến MySql. .
    Thay thế giá trị trong đoạn mã sau bằng your_ConnectionString bằng thông tin cơ sở dữ liệu của bạn

    Làm cách nào để kết nối cơ sở dữ liệu MySQL với Entity Framework Core?

    Bạn có thể kiểm tra API trực tiếp bằng một công cụ như Postman hoặc kết nối nó với ví dụ về ứng dụng Angular hoặc React có sẵn. .
    Bắt đầu ở chế độ gỡ lỗi. .
    Thêm nhà cung cấp cơ sở dữ liệu MySQL từ NuGet. .
    Thêm chuỗi kết nối vào cài đặt ứng dụng. .
    Cập nhật bối cảnh dữ liệu để sử dụng MySQL. .
    Cài đặt công cụ dotnet ef. .
    Thêm gói EF Core Design từ NuGet

    Cách kết nối với cơ sở dữ liệu trong. NET lõi MVC?

    Chuyển đến Tệp -> Dự án mới -> Chọn Web từ các mẫu-> chọn ASP. NET Core ứng dụng web (. NET lõi). Cung cấp tên cho ứng dụng Web và nhấp vào OK. Chọn mẫu Ứng dụng web và nhấp vào OK