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ướ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; }
}
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; }
}
services.AddDbContext<DataDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("ConnectionString")));
- 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
Đúng lúc đang cần học lại từ đầu hehe
ReplyDelete