0% found this document useful (0 votes)
45 views4 pages

Bài Tập Thực Hành 03: - Tạo thư mục Models trong dự án. Trong thư mục Models, tạo mới class Class.cs,

The document describes steps to create a ASP.NET Core Web App project with Models, Pages, and CRUD functionality generated for entities like Student, Course, and Enrollment. It includes initializing database tables and seeding sample data. Additional tasks include expanding student detail views, adding sorting and filtering capabilities to lists of students.

Uploaded by

Minh Hoàng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views4 pages

Bài Tập Thực Hành 03: - Tạo thư mục Models trong dự án. Trong thư mục Models, tạo mới class Class.cs,

The document describes steps to create a ASP.NET Core Web App project with Models, Pages, and CRUD functionality generated for entities like Student, Course, and Enrollment. It includes initializing database tables and seeding sample data. Additional tasks include expanding student detail views, adding sorting and filtering capabilities to lists of students.

Uploaded by

Minh Hoàng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

BÀI TẬP THỰC HÀNH 03

1. Tạo dự án ASP.NET Core Web App


• Tạo thư mục Models trong dự án. Trong thư mục Models, tạo mới class Class.cs,
Student.cs, Course.cs, Enrollment.cs

[email protected] 1
• Trong thư mục Pages, tạo mới thư mục Students, Courses, Enrollments. Tự động
phát sinh các chức năng CRUD cho lớp Student, Course, Enrollment bằng cách sử
dụng chức năng New Scaffolded Items.
Tập tin DbContext.cs:
public DbSet<Regis.Models.Class> Class { get; set; }
public DbSet<Regis.Models.Student> Student { get; set; }
public DbSet<Regis.Models.Course> Course { get; set; }
public DbSet<Regis.Models.Enrollment> Enrollment { get; set; }

protected override void OnModelCreating(ModelBuilder mb)


{
mb.Entity<Class>().ToTable("Class");
mb.Entity<Student>().ToTable("Student");
mb.Entity<Course>().ToTable("Course");
mb.Entity<Enrollment>().ToTable("Enrollment");
}

Tập tin Startup.cs:


public static void Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
CreateDB(host);
host.Run();
}

private static void CreateDB(IHost host)


{
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
var context = services.GetRequiredService<RegisContext>();
context.Database.EnsureCreated();
//InitData.Initialize(context);
}
catch(Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "Lỗi tạo DB.");
}
}
}

• Chạy ứng dụng, kiểm tra các trang.

2. Khởi tạo dữ liệu


• Trong thư mục Models, tạo mới class InitData.cs với nội dung sau:
public static void Initialize(RegisContext context)
{
context.Database.EnsureCreated();

// Look for any students.


if (context.Student.Any())
{
return; // DB has been seeded

[email protected] 2
}

var classes = new Class[]


{
new Class{Title="ĐH19PM"},
new Class{Title="ĐH19TH1"},
new Class{Title="ĐH19TH2"}
};

context.Class.AddRange(classes);
context.SaveChanges();

var students = new Student[]


{
new Student{Code="DPM185156",Name="Lê Công
Hậu",Birth=DateTime.Parse("2000-01-
01"),Email="[email protected]",ClassID=1},
new Student{Code="DPM185143",Name="Trương Thị Mỹ
Duyên",Birth=DateTime.Parse("2000-01-
01"),Email="[email protected]",ClassID=1},
new Student{Code="DTH185374",Name="Đặng Thị Phương
Thanh",Birth=DateTime.Parse("2000-01-
01"),Email="[email protected]",ClassID=3},
new Student{Code="DTH185282",Name="Trần Thanh
Khan",Birth=DateTime.Parse("2000-01-
01"),Email="[email protected]",ClassID=3},
new Student{Code="DTH185391",Name="Đào Hữu
Thắng",Birth=DateTime.Parse("2000-01-
01"),Email="[email protected]",ClassID=2},
new Student{Code="DTH185331",Name="Nguyễn Thị Yến
Nhi",Birth=DateTime.Parse("2000-01-
01"),Email="[email protected]",ClassID=2}

};

context.Student.AddRange(students);
context.SaveChanges();

var courses = new Course[]


{
new Course{Code="CON501",Title="Lập trình web",Credits=3},
new Course{Code="SEE517",Title="Công nghệ web ASP.NET",Credits=3},
new Course{Code="SEE518",Title="Công nghệ web PHP",Credits=3}
};

context.Course.AddRange(courses);
context.SaveChanges();

var enrollments = new Enrollment[]


{
new Enrollment{StudentID=1,CourseID=1,Grade=Grade.A},
new Enrollment{StudentID=2,CourseID=1,Grade=Grade.A},
new Enrollment{StudentID=3,CourseID=1,Grade=Grade.B},
new Enrollment{StudentID=4,CourseID=1,Grade=Grade.B},
new Enrollment{StudentID=5,CourseID=1,Grade=Grade.A},
new Enrollment{StudentID=6,CourseID=1,Grade=Grade.A},
new Enrollment{StudentID=1,CourseID=2,Grade=Grade.A},
new Enrollment{StudentID=2,CourseID=2,Grade=Grade.A},
new Enrollment{StudentID=3,CourseID=3,Grade=Grade.B},
new Enrollment{StudentID=4,CourseID=3,Grade=Grade.B},
new Enrollment{StudentID=5,CourseID=2,Grade=Grade.A},
new Enrollment{StudentID=6,CourseID=2,Grade=Grade.A}
};

context.Enrollment.AddRange(enrollments);

[email protected] 3
context.SaveChanges();
}

• Gọi phương thức khởi tạo dữ liệu trong Program.cs.


• Xóa hết dữ liệu (nếu có), chạy ứng dụng để xem kết quả.

3. Kết dữ liệu
• Mở rộng dữ liệu cho trang xem chi tiết sinh viên.

4. Sắp xếp, lọc dữ liệu


• Bổ sung chức năng sắp xếp dữ liệu khi click vào tiêu đề danh sách sinh viên.
• Bổ sung chức năng lọc dữ liệu trên danh sách sinh viên (tìm kiếm theo các trường dữ
liệu).

[email protected] 4

You might also like