Asp net bai8 de cuong bai giang

23 0 0
Asp net   bai8 de cuong bai giang

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng chi tiết môn học lập trình ASP.Net Bài học cung cấp kiến thức cơ sở lý thuyết tổng quan về ASP.NET, kiến trúc ASP.NET, Code phía server, cách thức truyền dữ liệu giữa các trang, chuyển trang. Sau khi học xong bài học này sinh viên có thể xây dựng được các trang Web Form sử dụng điều khiển Html, Server và biết cách truyền dữ liệu giữa các trang Web

HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET BÀI ENTITY FRAMEWORK TRONG ASP.NET MVC PHẦN - Mục đích: Hướng dẫn sinh viên tìm hiểu sử dụng Entity Framework để kết nối với sở liệu - Yêu cầu: Sau học sinh viên có khả lập trình kết nối với sở liệu sử dụng Entity Framework xây dựng chức xem, thêm, sửa, xóa (CRUD) dịng bảng - Hình thức tổ chức dạy học: Lý thuyết, tự học - Thời gian: Lý thuyết (trên lớp: 3; online: 3); Tự học, tự nghiên cứu: 10 - Nội dung chính: Entity Framework Lịch sử phát triển Entity Framework Kiến trúc tổ chức Các mơ hình lập trình Entity Framework Mơ hình Code first Tạo ứng dụng ASP NET MVC với cách tiếp cận code first Làm việc với sở liệu có Entity Framework Code First Hướng dẫn thực hành: 8.1 Tạo ứng dụng ASP NET MVC với cách tiếp cận code first 8.2 Tạo ứng dụng ASP NET MVC với chức CRUD bảng 14 Entity Framework  Entity Framework (EF) khung ORM (Object Relational Mapping) mã nguồn mở cho ứng dụng NET  Nó cho phép làm việc với liệu cách sử dụng đối tượng thuộc lớp thực thể mà không cần sử dụng trực tiếp bảng cột lưu trữ liệu  Với Entity Framework, nhà phát triển làm việc mức độ trừu Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET tượng cao trì ứng dụng hướng liệu với mã so với ứng dụng truyền thống Lịch sử phát triển Entity Framework  Entity Framework đời từ 2008 phiên NET 3.5 Phiên Entity Framework 6.0  Phiên hỗ trợ Database first Entity Framework làm việc với CSDL có sẵn  Trong phiên 4.0 xuất hướng tiếp cận Model first cho phép thiết kế lớp thực thể trước cách sử dụng giao diện đồ họa  Phiên 4.1 đưa thêm hướng tiếp cận Code first, cho phép viết code trước sau sinh sở liệu Kiến trúc tổ chức  Application: tầng chứa giao diện trang Web (HTML, CSS, Javascript, hình ảnh, …) đoạn mã nguồn (C#,…) để tương tác liệu với tầng khác mơ hình thơng qua Object Services  Object Services: tầng chứa trình tương tác ứng dụng database, hay nói cách khác nơi chủ yếu để truy cập liệu từ database trả ngược kết giao diện Object Services cung cấp tiện ích để truy vết thay đổi quản lý nhận dạng, đồng thời quan hệ thay đổi database  ADO.NET Data Providers: Đây tầng thấp để dịch truy vấn L2E (LINQ to Entity) thông qua câu lệnh thành câu lệnh SQL thực thi câu lệnh hệ thống DBMS (database management system – hệ quản lý liệu) Tầng kết với database sử dụng ADO.NET  EDM (Entity Data Model): chứa phần mơ hình khái niệm (CSDL – Conceptual schema definition language), mơ hình ánh xạ (MSL – mapping specification language) mơ hình lưu trữ (SSDL – store schema definition language) EDM khác với EntityClient Data Provider chỗ EDM sử dụng LINQ ngôn ngữ truy vấn tương tác với database  ADO.NET Data Providers: Đây tầng thấp để dịch truy vấn L2E (LINQ to Entity) thông qua câu lệnh thành câu lệnh SQL thực thi Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET câu lệnh hệ thống DBMS (database management system – hệ quản lý liệu) Tầng kết với database sử dụng ADO.NET  Mơ hình khái niệm (CSDL – Conceptual schema definition language): Chứa lớp mơ hình mối quan hệ lớp  Mơ hình lưu trữ (SSDL – store schema definition language): Gồm bảng, view, stored procedure mối quan hệ chúng Mơ hình thể gần giống mơ hình quan hệ bảng CSDL  Mơ hình ánh xạ (MSL – mapping specification language) Mơ hình ánh xạ gồm thơng tin cách mơ hình khái niệm ánh xạ đến mơ hình lưu trữ  L2E (LINQ to Entities): ngôn ngữ truy vấn dùng để viết truy vấn trái với mơ hình đối tượng L2E trả thực thể, định nghĩa mơ hình khái niệm Chúng ta dùng LINQ ngơn ngữ Các mơ hình lập trình Entity Framework Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Database First: Đã có bảng CSDL, EF sinh domain class o Database First là: xây dựng sở liệu trước xây dựng mã nguồn ứng dụng o Database First cho phép tạo mơ hình đảo ngược database lưu tập tin EDMX (.edmx).Có thể xem chỉnh sửa tập tin Entity Framework Designer Các lớp tương ứng với bảng tự động sinh từ tập tin EDMX o Đây cách tiếp cận sử dụng phổ biến hệ thống lớn mà dự án có phận chuyên dụng thiết kế database  Model First: Từ biểu đồ UML, EF sinh domain class bảng CSDL o Model First: cho phép tạo mơ hình dùng Entity Framework Designer sau tạo lược đồ sở liệu từ mơ hình o Mơ hình lưu trữ tập tin EDMX (.edmx) xem, chỉnh sửa Entity Framework Designer Các lớp tương tác với ứng dụng tự động gieo từ tập tin EDMX o Phương pháp giúp hình dung mơ hình phần mềm mức độ tổng quan, từ phân chia phần mềm thành phần triển khai xây dựng ứng dụng o Thơng thường, ứng dụng có quy mơ lớn đến lớn ưu tiên sử dụng phương pháp  Code First: Từ domain class, EF sinh bảng CSDL o Với cách tiếp cận code-first, Entity Framework tạo đối tượng bảng sở liệu dựa model tạo để biểu diễn liệu ứng dụng o Mơ hình phổ biến kiểm sốt hồn tồn code model, thêm xóa sửa thuộc tính vơ dễ dàng o Tuy nhiên Các thay đổi cấu trúc trực tiếp CSDL Khó kiểm sốt column tạo CSDL Mơ hình Code first  Ví dụ mơ hình Code first: Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET o Entity class o Database context o Quy ước ánh xạ thực thể  Tên thực thể số ánh xạ với bảng tên số nhiều  Tùy biến với [Table(“Tên bảng")]  Tên thuộc tính tên với tên cột  Tùy biến với [Column (“Tên cột")]  Tên thuộc tính phải ID EntityID  Tùy biến với [Key]  Khóa int hiểu tự tăng Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Tùy biến với [DatabaseGenerated(DatabaseGeneratedOption.Identit y)] o Các phương thức thao tác liệu  Tạo đối tượng db context var db = new DatabaseContext();  Thao tác & truy vấn thực thể Thêm thực thể Cập nhật thông tin thực thể Xóa thực thể db.Entry(course).State = EntityState.Modified; db.Courses.Remove(course); Truy vấn thực thể theo mã Truy vấn tất thực thể db.Courses.Add(course); var course = db.Courses.Find(id); var list = db.Courses  Lưu thay đổi  db.SaveChanges() Tạo ứng dụng ASP NET MVC với cách tiếp cận code first  Bước Tạo project, chọn mẫu MVC  Bước Tạo Model o Kích chuột phải vào thư mục model => Add => Class o Tạo Class, tên class khơng nên đặt tên có ký tự "s" (Số nhiều) trình generate database tạo bảng có thêm ký tự "s" đằng sau o Cấu hình class thêm thuộc tính quan hệ  Bước Connect database o Mở Sql Sever tiến hành tạo database o Chọn property sever để lấy sever name o Vào Project => Manager nuget package => Chọn tab browse tìm Entity Framework o Vào Sever Explorer => Chọn Connect to database => Nhập tên sever Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET chọn database vừa tạo o Kích chuột phải vào data connection vừa kết nối => Property => Copy connection string o Mở file webconfig.cs thêm đoạn connection string vào thẻ configuration  Bước Tạo Data accept layer chứa context o Vào project tạo thêm thư mục có tên DAL => Tạo class có tên XXXContext.cs cấu hình o Tiến hành Rebuild Project (bắt buộc)  Bước Tạo controller view o Kích chuột phải thư mục controller => add => Add new scaffolded Item => MVC Controller with view, using entity framewrok o Generate controller view model  Bước Chạy ứng dụng để tạo bảng sở liệu Làm việc với sở liệu có Entity Framework Code First  Bước Cần có sở liệu hệ quản trị sở liệu  Bước Tạo project MVC  Bước Tạo kết nối với Database ánh xạ bảng thành model o Kích chuột phải vào folder Models chọn Add => New item => Data => ADO.NET Entity Model o Chọn Code First from database o Kích vào New Connection… o Nhập Server name chọn Database o Chọn Tables  Bước Mở file webconfig.cs để kiểm tra connection string  Bước Tạo controller view o Kích chuột phải thư mục controller => add => Add new scaffolded Item => MVC Controller with view, using entity framewrok o Generate controller view model Hướng dẫn thực hành: 8.1 Tạo ứng dụng ASP NET MVC với cách tiếp cận code first  Bước Tạo project, chọn mẫu MVC Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Bước Tạo Model o Kích chuột phải vào thư mục model => Add => Class o Tạo Class: Student, Course, Enrollment  Cấu hình class thêm thuộc tính quan hệ: Bảng Student liên kết với bảng Enrollment, để định nghĩa dùng từ khóa virtual kiểu liệu Iconnection (tham số Enrollment entity ta định nghĩa sau) => định nghĩa bảng Student mapping sang bảng Enrollment bảng có khóa StudentID Tương tự với bảng Course public class Student { public int Id { get; set; } public string LastName { get; set; } public string FirstName { get; set; } Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET public DateTime EnrollmentDate { get; set; } public virtual ICollectionEnrollments { get; set; } } public class Enrollment { public int EnrollmentID { get; set; } public int Grade { get; set; } public int CourseID { get; set; } public int StudentID {get; set;} public virtual Student Student { get; set; } public Course Course { get; set; } } public class Course { [DatabaseGenerated(DatabaseGeneratedOption.None)] //Sử dụng anotation để tự sinh mã tự động database public int CourseID { get; set; } public string Title { get; set; } public int Credits { get; set; } public virtual ICollectionEnrollments { get; set; } }  Bước Connect database o Mở Sql Sever lấy Server Name o Tạo database có tên MyCodeFirst o Vào Project => Manager nuget package => Chọn tab browse tìm Entity Framework Học kết hợp Trang HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET o Vào Sever Explorer => Data Connections=> Add Connection… o Kích chuột phải vào data connection vừa kết nối => Property => Coppy connection string Học kết hợp Trang 10 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET o Mở file webconfig.cs thêm đoạn connection string vào thẻ configuration  Bước Tạo Data accept layer chứa context o Vào project folder Models tạo thêm class có tên MyCodeFirstContext.cs cấu sau public class MyCodeFirstContext : DbContext{ public MyCodeFirstContext() : base("MyCodeFirstContext") { } public DbSet Students { get; set; } public DbSet Enrollments { get; set; } public DbSet Courses { get; set; } } o Tiến hành Rebuild Project (bắt buộc)  Bước Tạo controller view o Kích chuột phải thư mục Controllers => Add => Add new scaffolded Item => MVC Controller with view, using entity framework Học kết hợp Trang 11 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET o Generate controller view model Tương tự với Enrollment Course o Chạy ứng dụng ấn F5 Ctrl+F5 gọi Học kết hợp Trang 12 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET “https://localhost:44328/students” kết Trong SQL Server sở liệu MyCodeFirst có thêm bảng:  Thay đổi Model Code First public class Student { public int Id { get; set; } public string LastName { get; set; } public string FirstName { get; set; } public string Address { get; set; } //thêm trường address public DateTime EnrollmentDate { get; set; } public virtual ICollectionEnrollments { get; set; } } o Vào Tool => Nuget package manager => Package manager console: o Thực câu enable-migrations Add-Migration AddAddressToStudent Update-Database Học kết hợp Trang 13 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET Kết sở liệu MyCodeFirst o Do bảng student thay đổi nên cần xóa StudentsController View tương ứng tạo lại bước 8.2 Tạo ứng dụng ASP NET MVC với chức CRUD bảng Chạy file script WineDB.sql SQLServer để tạo sở liệu WineStore Cài đặt EntityFramework sử dụng NuGet Package Manager  Tạo project đặt tên BaiTap10, chọn mẫu MVC  Kích chuột phải vào tên project chọn Manage NuGet Packages để mở cửa sổ NuGet Package Manager (Chú ý máy tính phải nối mạng Internet)  Chọn tab Browse, gõ EntityFramework vào tìm kiếm để tìm kiếm EntityFramework sau kích vào nut Install để cài đặt Học kết hợp Trang 14 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Cài đặt xong nhìn thấy References Tạo kết nối với Database  Kích chuột phải vào folder Models chọn Add => New item => Data => ADO.NET Entity Model sau:  Chọn Code First from database kích vào nút Next Học kết hợp Trang 15 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Kích vào New Connection… Học kết hợp Trang 16 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Nếu thấy cửa sổ chọn Microsoft SQL Server kích vào nút Continue  Chạy SQL Server để lấy server name Nhập Server name chọn Database WineStore kích OK Học kết hợp Trang 17 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Kích Next  Chọn Tables kích Finish Học kết hợp Trang 18 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET  Các model sinh tương ứng với bảng Database  Mở fiel WineStoreDB.cs lớp DBContext, Catalogy.cs Product.cs lớp entity để xem code  Mở file Web.config để xem Tùy biến hiển thị tên property lớp Model đưa vào thông báo lỗi Học kết hợp Trang 19 HỌC PHẦN: LẬP TRÌNH WEB BẰNG ASP.NET Tạo chức CRUD (Thêm, xem, sửa, xóa) cho bảng Catalogy  Kích vào Build ReBuild Solution để build lại project (Phải làm trước tạo controller)  Kích chuột phải vào folder Controllers chọn AddController… Sau chọn mẫu MVC Controller with view, using Entity Framework hình Học kết hợp Trang 20

Ngày đăng: 24/02/2024, 06:33

Tài liệu cùng người dùng

Tài liệu liên quan