Entity Framework Core (EF Core) là một khung ánh xạ quan hệ đối tượng (ORM) cho phép các nhà phát triển tương tác với cơ sở dữ liệu bằng cách sử dụng các đối tượng .NET. Một trong những tính năng thiết yếu của EF Core là khả năng xử lý việc di chuyển cơ sở dữ liệu.
Bài viết này trình bày các lần di chuyển EF Core, tại sao chúng lại quan trọng và cách sử dụng chúng với một ví dụ. Vì vậy, để bắt đầu:
C# đã xuất hiện được một thời gian khá lâu và nó tiếp tục phát triển, thu được nhiều tính năng nâng cao hơn. vừa.com
EF Core Migration là một cách quản lý các thay đổi đối với giản đồ cơ sở dữ liệu của bạn theo thời gian. Khi bạn thực hiện thay đổi đối với mô hình cơ sở dữ liệu của mình (chẳng hạn như thêm hoặc xóa bảng hoặc cột), bạn có thể tạo di chuyển mô tả những thay đổi đó.
Di chuyển sau đó được sử dụng để cập nhật lược đồ cơ sở dữ liệu để phù hợp với mô hình mới.
EF Core Migration rất cần thiết vì chúng cho phép bạn phát triển lược đồ cơ sở dữ liệu của mình theo thời gian trong khi vẫn bảo toàn dữ liệu.
Nếu không có quá trình di chuyển, bạn sẽ phải sửa đổi lược đồ cơ sở dữ liệu của mình theo cách thủ công mỗi khi bạn thực hiện các thay đổi đối với mô hình của mình, điều này có thể tốn thời gian và dễ xảy ra lỗi.
Di chuyển cũng cung cấp một cách để phiên bản lược đồ cơ sở dữ liệu của bạn để bạn có thể dễ dàng theo dõi các thay đổi và quay lại các phiên bản trước nếu cần.
Để sử dụng EF Core Migration, bạn cần thực hiện theo một số bước:
Tạo một dự án EF Core mới. Bước đầu tiên là tạo một dự án EF Core mới trong Visual Studio. Bạn có thể thực hiện việc này bằng cách chọn "Tạo dự án mới", sau đó chọn "Ứng dụng web ASP.NET Core" và chọn mẫu "Ứng dụng web (Model-View-Controller)".
Tạo bối cảnh cơ sở dữ liệu. Bước tiếp theo là tạo một lớp bối cảnh cơ sở dữ liệu. Lớp này quản lý các tương tác giữa các đối tượng .NET của bạn và cơ sở dữ liệu. Để tạo bối cảnh cơ sở dữ liệu, hãy tạo một lớp mới trong dự án của bạn và kế thừa nó từ lớp DbContext.
public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } }
Tạo một mô hình cơ sở dữ liệu
Sau khi tạo bối cảnh cơ sở dữ liệu, bạn sẽ cần tạo mô hình cơ sở dữ liệu. Mô hình này đại diện cho cấu trúc cơ sở dữ liệu của bạn và được EF Core sử dụng để tạo các bảng và cột cơ sở dữ liệu.
Để tạo một mô hình cơ sở dữ liệu, hãy tạo một lớp mới trong dự án của bạn và xác định các thuộc tính của nó dưới dạng các trường cơ sở dữ liệu.
public class MyModel { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
Kích hoạt di chuyển lõi EF
Tiếp theo, bạn cần bật EF Core Migration trong dự án của mình. Để thực hiện việc này, hãy mở Bảng điều khiển quản lý gói và nhập lệnh sau:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Gói này chứa các công cụ cần thiết để tạo và quản lý EF Core Migration.
Tạo Di chuyển
Khi bật EF Core Migration, bạn có thể tạo lần di chuyển đầu tiên của mình. Để tạo di chuyển, hãy mở Bảng điều khiển quản lý gói và nhập lệnh sau:
PM> Add-Migration InitialCreate
Thao tác này sẽ tạo một quá trình di chuyển mới có tên là "InitialCreate" mô tả những thay đổi bạn đã thực hiện đối với mô hình cơ sở dữ liệu của mình. Bạn có thể xem nội dung di chuyển trong thư mục "Di chuyển" của dự án.
Cập nhật cơ sở dữ liệu
Sau khi tạo di chuyển, bạn có thể cập nhật lược đồ cơ sở dữ liệu để phù hợp với mô hình mới. Để thực hiện việc này, hãy mở Bảng điều khiển quản lý gói và nhập lệnh sau:
PM> Update-Database
Thao tác này sẽ áp dụng quá trình di chuyển tới cơ sở dữ liệu và cập nhật lược đồ của nó.
Hãy xem một ví dụ về việc sử dụng EF Core Migration. Giả sử chúng ta muốn tạo một bảng "Sinh viên" đơn giản với hai cột: "Id" và "Name". Chúng ta sẽ bắt đầu bằng cách tạo một dự án Ứng dụng web ASP.NET Core mới trong Visual Studio.
Tạo một dự án EF Core mới. Tạo một dự án Ứng dụng web ASP.NET Core mới trong Visual Studio. Chọn mẫu "Ứng dụng web (Model-View-Controller)" và chọn "Tài khoản người dùng cá nhân" để Xác thực. Đặt tên dự án là "EFCoreMigrationsExample".
Tạo bối cảnh cơ sở dữ liệu. Tạo một lớp mới gọi là "MyDbContext" trong thư mục "Mô hình" của dự án và kế thừa nó từ lớp DbContext.
using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
Thuộc tính "Students" là một DbSet đại diện cho bảng "Students" trong cơ sở dữ liệu của chúng tôi.
Tạo một mô hình cơ sở dữ liệu
Tạo một lớp "Sinh viên" mới trong thư mục "Mô hình" của dự án và xác định các thuộc tính của nó.
namespace EFCoreMigrationsExample.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }
Kích hoạt di chuyển lõi EF
Mở Bảng điều khiển quản lý gói và nhập lệnh sau để cài đặt gói công cụ EF Core:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Tạo Di chuyển
Mở Bảng điều khiển quản lý gói và nhập lệnh sau để tạo di chuyển:
PM> Add-Migration InitialCreate
Thao tác này sẽ tạo một quá trình di chuyển mới có tên là "InitialCreate" mô tả những thay đổi mà chúng tôi đã thực hiện đối với mô hình cơ sở dữ liệu của mình.
Tệp di chuyển sẽ trông như thế này:
using Microsoft.EntityFrameworkCore.Migrations; namespace EFCoreMigrationsExample.Migrations { public partial class InitialCreate : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column<string>(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Students"); } } }
Quá trình di chuyển sẽ tạo một bảng mới có tên là "Sinh viên" với các cột dành cho "Id" và "Name".
Cập nhật cơ sở dữ liệu Mở Bảng điều khiển quản lý gói và nhập lệnh sau để cập nhật lược đồ cơ sở dữ liệu:
PM> Update-Database
Thao tác này sẽ áp dụng quá trình di chuyển tới cơ sở dữ liệu và cập nhật lược đồ của nó.
Giờ đây, chúng tôi có thể thêm, cập nhật và xóa sinh viên trong cơ sở dữ liệu của mình bằng EF Core. Ví dụ: chúng ta có thể thêm một sinh viên mới vào cơ sở dữ liệu như thế này:
using EFCoreMigrationsExample.Models; namespace EFCoreMigrationsExample.Controllers { public class HomeController : Controller { private readonly MyDbContext _context; public HomeController(MyDbContext context) { _context = context; } public IActionResult Index() { var student = new Student { Name = "John" }; _context.Students.Add(student); _context.SaveChanges(); return View(); } } }
Mã này tạo một thể hiện mới của lớp Sinh viên và đặt thuộc tính Tên của nó thành "John". Sau đó, nó thêm sinh viên vào DbSet sinh viên và lưu các thay đổi vào cơ sở dữ liệu.
EF Core Migration cung cấp một cách thuận tiện để quản lý các thay đổi lược đồ cơ sở dữ liệu trong ứng dụng của bạn.
Bài viết này trình bày cách tạo một lược đồ cơ sở dữ liệu đơn giản bằng cách sử dụng di chuyển EF Core, bao gồm tạo DbContext, xác định mô hình, thực hiện di chuyển và cập nhật lược đồ cơ sở dữ liệu.
Đây mới chỉ là khởi đầu của những gì EF Core có thể làm. Bạn có thể sử dụng EF Core để truy vấn và thao tác dữ liệu, tạo mối quan hệ phức tạp giữa các bảng, v.v. Với tính năng dễ sử dụng và nhiều tính năng, EF Core là một lựa chọn tuyệt vời để xây dựng các ứng dụng dựa trên dữ liệu trong .NET.
Bài viết này đã giúp bạn bắt đầu với việc di chuyển EF Core. Nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào, vui lòng để lại bên dưới. Chúc mừng mã hóa!
Ấn phẩm C# , LinkedIn , Instagram , Twitter , Dev.to
Cũng được xuất bản ở đây