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
- MySQL - Trong hướng dẫn này, tôi sẽ sử dụng XAMPP
- Visual Studio 2022 đã cài đặt các mẫu phát triển Web
- 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]
Đặ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 quá. 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
- 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
- Bắt đầu api bằng cách chạy
0 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{ "ConnectionStrings": { "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } } }
1{ "ConnectionStrings": { "WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } } }
- 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
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
{
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
2 và thêm mục nhập {
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
3 với mục nhập con cho chuỗi kết nối MySQL [e. g. {
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
4], chuỗi kết nối phải ở định dạng {
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
5Khi 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 MySQLTệ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 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ùngCập nhật phương thức
{
"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"
}
}
}
8Lớ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{
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
1
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 [_______110] đượ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
{
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
11 hoặc để cập nhật chạy {
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
12. Để 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/dotnetThê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
{
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
5
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
{
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
13 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 APIThực hiện di chuyển EF Core
Chạy lệnh
{
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
14 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 MySQLKiể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à {
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
16
Khởi động lại. MẠNG 6. 0 API CRUD
Dừng và khởi động lại API bằng lệnh
{
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
0 từ thư mục gốc của dự án, bạn sẽ thấy thông báo {
"ConnectionStrings": {
"WebApiDatabase": "server=localhost; database=dotnet-5-crud-api; user=testUser; password=testPass123"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
1 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