-->

Hướng dẫn tạo database sử dụng Code First trong ASP.NET Core

Hướng dẫn tạo database sử dụng Code First trong ASP.NET Core
Trong bài viết này, mình sẽ hướng dẫn các bạn về Code First trong Entity Framework Core, cụ thể là tạo ra database từ việc dùng Code First Migration, rất hiệu quả và được sử dụng nhiều hiện nay.

Trước tiên, bạn cần biết Code First là cái gì? Code First Migration đề cập đến vấn đề bạn gặp phải khi cập nhật CSDL như thêm cột, xóa cột, tạo bảng mới và cập nhật vào CSDL đang có khi bạn sử dụng Code First trong Entity Framework. 

Việc cập nhật sẽ được thực hiện tự động mỗi khi có thay đổi trong các model mà bạn đã khai báo.

Tiến hành sử dụng Code First Migration

Bước 1: Tạo project ASP.NET Core Web Application sử dụng MVC mới.

Bước 2: Cài đặt các NuGet Package sau:
  • Microsoft.EntityFrameworkCore 
  • Microsoft.EntityFrameworkCore.SqlServer
  • Microsoft.EntityFrameworkCore.Tools

Bước 3: Cấu hình chuỗi kết nối tới SQL Server trong appsetting.json:

"ConnectionStrings": {
    "ConnectionString": "Server=CNPM-PC\\SQLEXPRESS;Database=DbShopDemo;Trusted_Connection=True;MultipleActiveResultSets=true"
  },


Bạn cần chú ý đến Server name và tên database để thay đổi cho phù hợp.

Bước 4: Tạo các lớp sau trong thư mục Models:
Product.cs:

    public class Product
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Image { get; set; }
        public string Price { get; set; }
        public string Warranty { get; set; }
        public string Detail { get; set; }
        public int CategoryId { get; set; }
        public Category Category { get; set; }

    }

Category.cs:

    public class Category
    {
        public int CategoryId { get; set; }
        public string Name { get; set; }
        public virtual ICollection<Product> Products { get; set; }

    }

Bước 5: Tiếp theo ta cần tạo một class kế thừa DbContext để xử lý các chuỗi kết nối tới SQL Server. Ở class này các bạn có thể thêm các ràng buộc, khóa chính hoặc các relationship.

Tạo class DataDbContext.cs trong thư mục Models:

    public class DataDbContext : DbContext
    {
        public DataDbContext(DbContextOptions<DataDbContext> options)
               : base(options)
        {

        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            // Đặt khóa chính
            modelBuilder.Entity<Product>().HasKey(s => s.Id);
            modelBuilder.Entity<Category>().HasKey(s => s.CategoryId);

            // ER
            modelBuilder.Entity<Product>()
                .HasOne(s => s.Category)
                .WithMany(s => s.Products)
                .HasForeignKey(s => s.CategoryId)
                .OnDelete(DeleteBehavior.Restrict);


        }
        public DbSet<Product> Products { get; set; }
        public DbSet<Category> Categories { get; set; }

    }

Bước 6: Ta vào Startup.cs và tìm đến phương thức ConfigureServices() và thêm đoạn code sau bên trong:
services.AddDbContext<DataDbContext>(options =>
                        options.UseSqlServer(
                            Configuration.GetConnectionString("ConnectionString")));

Bước 7: Vào Tools > NuGet Package Manager > NuGet Package Console và thực thi lần lượt 2 command sau:
  • Add-Migration InitialShopCore
  • Update-database

Bước 8: Sau khi thực hiện bước 7, database của bạn đã được tự động sinh ra, và bước cuối cùng là các bạn vào SQL Server kiểm tra database đã được sinh ra hay chưa. Và đó cũng là kết quả của bài viết này:



Lời kết

Qua bài viết trên, mong muốn một phần nào các bạn tự code được Code First Migration và có cái nhìn cơ bản nhất về cách các Migration hoạt động.

Và để hiểu thật nhiều hơn về nó các bạn có truy cập tại đây, và tìm hiểu nhé. Và là bây giờ là ví dụ dưới đây, hãy cùng tìm hiểu nhé.

Mong bài viết có ích với bạn, chúc các bạn thành công.

By Hiếu Quốc

Có lẽ bạn thích?

1 comment

Post a Comment