Bài giảng Lập trình hướng đối tượng 2: Entity Framework. Các nội dung chsinh được trình bày trong chương này gồm có: Lịch sử Data Access, O/RM là gì? Tổng quan về EF, truy vấn trong EF, phát triển ứng dụng với EF. Mời các bạn cùng tham khảo.
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Entity Framework Nội dung Lịch sử Data Access O/RM gì? Tổng quan EF Truy vấn EF Phát triển ứng dụng với EF Lịch sử Data Access O/RM gì? Object Relational Mapping O/RM kỹ thuật chuyển đổi liệu hệ thống khơng tương thích, RDBMS OOP (mơ hình sở liệu quan hệ mơ hình hướng đối tượng) O/RM gì? Lý sử dụng O/RM ORM có nhiều thuận lợi so với phương pháp truy xuất liệu (data access) khác: ORM tự động hóa việc chuyển đổi từ object sang table từ table sang object, giúp giảm thời gian chi phí phát triển Tăng tốc độ thực thi hệ thống Một giải pháp ORM tốt giúp ứng dụng nhanh dễ hỗ trợ ADO.Net Entity Framework Entity Framework O/RM NET Framework Là framework truy xuất liệu Hỗ trợ ứng dụng database Cho phép lập trình mơ hình ứng dụng mức khái niệm Khả độc lập với sở liệu Entity Framework dựa tảng ADO.NET ADO.Net Entity Framework Sử dụng ADO.NET Entity Framework để xây dựng ứng dụng hướng liệu mang lại lợi ích sau: Rút ngắn thời gian phát triển ứng dụng Framework cung cấp sẵn tính cho việc truy xuất liệu lập trình viên tập trung vào mặt logic ứng dụng Các lập trình viên làm việc với mơ hình ứng dụng hướng đối tượng nghĩa: thừa kế, xây dựng thành viên phức tạp,… ADO.Net Entity Framework Khơng phụ thuộc q nhiều vào mơ hình lưu trữ ADO.NET Entity Framework cung cấp mơ hình khái niệm độc lập với mơ hình lưu trữ Việc thay đổi mapping mơ hình đối tượng cấu trúc lưu trữ thực dễ dàng, khơng cần phải thay đổi code ứng dụng Hỗ trợ việc sử dụng LINQ to Entities mang lại tính IntelliSense kiểm tra tính hợp lệ thời điểm biên dịch ADO.NET Entity Framework EF NET Entity Provider (Entity SQL) Programming Model Conceptual Model Entity LINQ Reader relationship Connection Entity Command Object Relational Mapping Mapping (MSL) V2.0 NET Data Provider Reader Connection Adapter Command Store Truy vấn EF Truy vấn Cú pháp Kết Lợi ích LINQ Entity Objects or Anonymous Type Object Context w/change tracking; Intellisense; Language Integration EntitySQL (ObjectServices) Entity SQL Entity Objects or dbDataRecords Object Context w/change tracking; Build Dynamic Queries; EntityClient Entity SQL dbDataReader Plug into existing DAL LINQ to Entities Hiệu suất Demo Lấy danh sách sản phẩm QLBHEntities data = new QLBHEntities(); var listsp = from sp in data.SanPhams select new { sp.MaSanPham, sp.TenSanPham, sp.MaLoai, sp.DonGia }; dgSanPham.DataSource = listsp; Thêm sản phẩm QLBHEntities data = new QLBHEntities(); SanPham sp = new SanPham(); sp.MaSanPham = txtMaSanPham.Text; sp.TenSanPham = txtTenSanPham.Text; sp.MaLoai = cboLoai.SelectedValue.ToString(); sp.DonGia = Convert.ToInt32(txtDonGia.Text); data.AddToSanPhams(sp); data.SaveChanges(); Cập nhật sản phẩm QLBHEntities data = new QLBHEntities(); SanPham sanpham = (from sp in data.SanPhams where sp.MaSanPham == txtMaSanPham.Text.Trim() select sp).Single(); //sanpham.MaSanPham = txtMaSanPham.Text.Trim(); sanpham.TenSanPham = txtTenSanPham.Text; sanpham.MaLoai = cboLoai.SelectedValue.ToString(); sanpham.DonGia = Convert.ToInt32l(txtDonGia.Text); data.SaveChanges(); Xoá sản phẩm QLBHEntities data = new QLBHEntities(); SanPham sanpham = (from sp in data.SanPhams where sp.MaSanPham == txtMaSanPham.Text.Trim() select sp).Single(); data.DeleteObject(sanpham); data.SaveChanges(); EF and 3-Layers Code nằm đâu? Presentation Layer var sanpham = from sp in db.SanPhams where sp.TenSanPham =“……” select sp; Business Logic Layer Data Access Layer EF and 3-Layers Entity Framework = DAL UI Presentation Business Objects Business Data Access Forms CS MSL SS ADO.NET Entity Client ADO.NET Object Services Entities ... ADO.Net Entity Framework Entity Framework O/RM NET Framework Là framework truy xuất liệu Hỗ trợ ứng dụng database Cho phép lập trình mơ hình ứng dụng mức khái niệm Khả độc lập với sở... xuất liệu lập trình viên tập trung vào mặt logic ứng dụng Các lập trình viên làm việc với mơ hình ứng dụng hướng đối tượng nghĩa: thừa kế, xây dựng thành viên phức tạp,… ADO.Net Entity Framework. .. Entity Framework dựa tảng ADO.NET ADO.Net Entity Framework Sử dụng ADO.NET Entity Framework để xây dựng ứng dụng hướng liệu mang lại lợi ích sau: Rút ngắn thời gian phát triển ứng dụng Framework