Tải bản đầy đủ (.ppt) (43 trang)

Bài giảng Xây dựng và triển khai Web Service cho ứng dụng di động (GV Trần Duy Thanh) Bài 3

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (784.4 KB, 43 trang )

Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh
TRUNG TÂM TIN HỌC

Bài 3: Các công nghệ dùng để xây dựng Web
Service cho ứng dụng di động – Phần 2
Ngành Mạng & Thiết bị di động
www.t3h.vn

2015


Nội dung
1. Giới thiệu Object-Relational Mapping (ORM)
2. Entity Framework (EF)

Xây dựng và triển khai Web Service cho ứng dụng di động

2


1. Giới thiệu Object-Relational
Mapping (ORM)



Object-Relational Mapping (ORM) là kỹ thuật ánh xạ từ
mơ hình đới tượng x́ng CSDL quan hệ.



Cho phép thao tác trên bảng (Table) trong CSDL mà


không cần quan tâm nhiều đến việc viết câu truy vấn cho
mỗi lần truy xuất CSDL.

Xây dựng và triển khai Web Service cho ứng dụng di động

3


1. Giới thiệu Object-Relational
Mapping (ORM)



Ưu điểm




Đợc lập với Hệ quản trị Cơ sở dữ liệu.
Cung cấp các API đơn giản dễ dùng, viết mã nhanh, bản
thiết kế gần gũi với lập trình viên → tiết kiệm thời gian lập
trình.



Khuyết điểm



Các ORM thường tự sinh ra các câu lệnh SQL → Khó can

thiệp sâu để tối ưu hóa → Ảnh hưởng đến hiệu suất.



Cấu trúc bên dưới sẽ phức tạp nếu lạm dụng việc kế
thừa quá nhiều.



Khó khăn trong việc quản lý session.
Xây dựng và triển khai Web Service cho ứng dụng di động

4


Nội dung
1. Giới thiệu Object-Relational Mapping (ORM)
2. Entity Framework (EF)

• Giới thiệu Entity Framework
• Kiến trúc Entity Framework
• Cài đặt Entity Famework
• Tạo Entity Data Model và giới thiệu cấu trúc thư mục
• DBContext
• Các loại đới tượng trong Entity
• Thiết lập quan hệ cho Entity
• Vịng đời của Entity
• Các cách tiếp cận trong lập trình với Entity Framework
hiện truy vấn với EDM , thực hiện thêm, xóa, sửa trên Entity
• Thực

(CRUD).
Xây dựng và triển khai Web Service cho ứng dụng di động

5


2.1 Giới thiệu Entity Framework
Entity Framework (EF)

•Là mợt bợ ánh xạ đối tượng – quan hệ cho phép
người lập trình .NET làm việc với dữ liệu quan hệ
qua các đối tượng (object), giúp lập trình viên
không cần viết mã cho (hầu hết) những gì liên
quan đến truy cập dữ liệu.
→ Entity Framework là mợt mơ hình ORM.

•Sử dụng LINQ để truy vấn và cập nhật dữ liệu với
sự hỗ trợ của ADO.NET Data Provider.
Xây dựng và triển khai Web Service cho ứng dụng di động

6


2.1 Giới thiệu Entity Framework
Các thành phần trong Entity Framework:

•Code: mã lệnh tạo thành các lớp đối tượng dữ
liệu cho phép thao tác với dữ liệu.

•Model: sơ đồ gồm các hộp mô tả các thực thể và

các đường nối kết mơ tả các quan hệ.

•Database: cơ sở dữ liệu (có thể là SQL Server,
Compact SQL Server, Local database, MySQL,
Oracle,…)
Xây dựng và triển khai Web Service cho ứng dụng di động

7


2.1 Giới thiệu Entity Framework
Sơ đồ minh họa các hình thức ánh xạ – quan hệ trong Entity
Framework:

Xây dựng và triển khai Web Service cho ứng dụng di động

8


2.2 Kiến trúc Entity Framework

Mô hình kiến trúc Entity Framework
Xây dựng và triển khai Web Service cho ứng dụng di động

9


2.2 Kiến trúc Entity Framework




EDM (Entity Data Model)
Được phát triển bởi Dr. Peter Chen (1970s).

Xây dựng và triển khai Web Service cho ứng dụng di động

10


2.2 Kiến trúc Entity Framework



EDM (Entity Data Model) gồm ba phần chính:
 Khái niệm mơ hình (Conceptual model)
Các lớp và mối quan hệ tương ứng với cơ sở dữ liệu.
Được độc lập từ cơ sở dữ liệu.
 Mapping (bản đồ)
Thông tin các khái niệm mô hình do lập trình viên ánh
xạ tới

mô hình lưu trữ hay cơ sở dữ liệu.

 Mơ hình lưu trữ (Storage model)
Mơ hình thiết kế cơ sở dữ liệu bao gồm Table, View,
Store procedure, Relationship, Key,…
Xây dựng và triển khai Web Service cho ứng dụng di động

11



2.2 Kiến trúc Entity Framework

• LINQ to Entities
 Ngơn ngữ truy vấn được sử dụng để truy vấn với
mô hình đối tượng (Object Model).
 Giá trị trả về tuỳ thuộc theo người lập trình, theo
mơ hình (Model).

• Entity SQL
 Ngơn ngữ truy vấn giống như LINQ to Entities
nhưng nó phức tạp hơn LINQ to Entities .

Xây dựng và triển khai Web Service cho ứng dụng di động

12


2.2 Kiến trúc Entity Framework



Object Service
 Phục vụ cho việc truy cập, trả giá trị dữ liệu từ cơ sở dữ liệu.
 Cung cấp đầy đủ dịch vụ để quá trình chuyển đổi dữ liệu từ
thực thể đến cấu trúc đới tượng dễ dàng hơn.



Entity Client Data Provider


 Chuyển đổi L2E hoặc truy vấn Entity SQL vào truy vấn SQL
trong cơ sở dữ liệu.


Giao tiếp với ADO.NET data provider hoặc lấy dữ liệu từ cơ
sở dữ liệu.



ADO.Net Data Provider

 Giao tiếp với cơ sở dữ liệu sử dụng theo chuẩn ADO.NET
Xây dựng và triển khai Web Service cho ứng dụng di động

13


2.3 Cài đặt Entity Famework



Cài đặt NuGet

EF 6.1.3 (bản mới nhất hiện nay) yêu cầu phải có NuGet 2.8.6
trở lên.
→ Cần cài đặt NuGet cho Visual Studio 2013 trở xuống, riêng
với Visual Studio 2015 đã được tích hợp sẵn mà khơng cần
cài đặt.




Cài đặt Entity Framework
 Cách 1: Sử dụng lệnh
Khởi động Visual Studio (đã cài NuGet) → Tools → NuGet
Package Manager → Package Manager Console và gõ câu lệnh
sau:
Xây dựng và triển khai Web Service cho ứng dụng di động

14


2.3 Cài đặt Entity Famework



Cài đặt Entity Framework

 Cách 2:
Khởi động Visual Studio (đã cài NuGet) → Tools → NuGet
Package Manager → Manager NuGet Package for
Solution… → gõ tìm Entity Framewwork và cài đặt nó.

Xây dựng và triển khai Web Service cho ứng dụng di động

15


2.4 Tạo Entity Data Model và giới thiệu
cấu trúc thư mục

Tạo Entity Data Model
Bước 1: Mở Visual Studio và tạo một dự án (project).
Bước 2: Thêm Entity Data Model vào dự án vừa tạo.

•Nhấp cḥt phải vào dự án → Add → New Item → Visual C# Items → Data →
ADO.NET Entity Data Model → Đặt tên cho Entity Data Model ḿn tạo và chọn Add.

•Từ hợp thoại Entitty Data Model Wizard → Chọn EF Designer from database → Next.
•Chọn dữ liệu kết nối (Choose Your Data Connection): chọn mã nguồn (Data
source), điền tên server (server name), tên CSDL và kiểm tra kết nới (Test
connection).

•Chọn phiên bản (Choose Your Version): Chọn Entity Framework 6.x.
•Chọn dữ liệu đới tượng và cài đặt (Choose Your Data Objects and Settings):
Chọn Tables → đổi tên Model Namspace → Fisnish.

Xây dựng và triển khai Web Service cho ứng dụng di động

16


2.4 Tạo Entity Data Model và giới thiệu
cấu trúc thư mục
Thiết kế EDM

•Thiết kế EDM đại diện cho mơ hình của chúng ta.
•Nó bao gồm Entities, Associations và Multiplicity giữa các thực
thể.

•Nó giớng như cấu trúc bảng (table) trong cơ sở dữ liệu, nhưng

chúng ta có thể thêm hoặc trộn cợt (merge column) hoặc xoá
cợt (remove column) mà khơng địi hỏi phải từ ứng dụng của
bạn thông qua thiết kế này.

•Có thể thêm đới tượng mới có các cợt trong mơ hình này.
•Chú ý:
Nên hết sức cẩn thận khi thay đổi trong thiết kế.
Xây dựng và triển khai Web Service cho ứng dụng di động

17


2.5 DBContext



Là đới tượng UnitOfWork - là mẫu thiết kế về truy x́t
CSDL.



Nó theo dõi những thay đởi của các đối tượng và chịu trách nhiệm
cập nhật dữ liệu đến CSDL.



Nó giữ bản sao chép cục bợ của dữ liệu (ở CSDL) với những
thay đổi chưa được cập nhật.

→ Đối tượng DBContext phải có thời gian sống ngắn để

nhanh chóng cập nhật CSDL nhằm giảm nguy cơ xảy
ra các mâu thuẫn khi xử lý đồng bợ.



Khi sử dụng EF, chúng ta cần phải tạo một lớp ngữ cảnh kế
thừa từ System.Data.Entity.DbContext.
Xây dựng và triển khai Web Service cho ứng dụng di động

18


2.6 Các loại đới tượng trong Entity
Framework



Có 4 loại: EntityObject, POCO (Plain Old CLR Object) , POCO
Proxy, Self-Tracking Entities.



Với mỡi Entity đều có 2 loại tḥc tính:



Scalar properties





Gồm các tḥc tính nằm trong mợt entity.
Ứng với Entity Teacher có scalar properties là TeacherId,
TeacherName, StandardId



Navigation properties



Là mợt con trỏ, trỏ đến một Entity khác - nó hiện thực
primary key – foreign key (1-n).



Ứng với Entity Teacher có 2 navigation properties là Courses,
Standard
Xây dựng và triển khai Web Service cho ứng dụng di động

19


2.6 Các loại đới tượng trong Entity
Framework



EntityObject
 Mặc


định

ADO.NET

Entity

Data

Model

tạo

mợt

EntityObject từ database thông qua trình công cụ có
sẵn của Visual Studio.
 Nó hiển thị đầy đủ cấu trúc của một Table (Fields Name,
Data type,….)



POCO (Plain Old CLR Object)

 Là mợt thực thể của CSDL (database).
 EF sẽ tự động tạo ra các đối tượng ứng với CSDL.
 Nó cũng hỗ trợ cú pháp LINQ.
Xây dựng và triển khai Web Service cho ứng dụng di động

20



2.6 Các loại đới tượng trong Entity
Framework

•POCO (Plain Old CLR Object)
 Ví dụ:
public class HocVien
{
public int MaHocVien{ get; set; }
public string TenHocVien{ get; set; }
public IList<KhoaHoc> KhoaHocs { get;
set; }
}

Xây dựng và triển khai Web Service cho ứng dụng di động

21


2.6 Các loại đới tượng trong Entity
Framework

•POCO Proxy

 Mợt lớp runtime proxy của POCO entity.
 POCO entity trở thành POCO proxy entity nếu đáp ứng được lazy
loading proxy và change tracking.





Self-Tracking Entities
Là những EntityObject, POCO, POCO proxy entities làm việc tớt
với ứng dụng.



Trong n-tier, phải chuyển các entities thành 1-tier nơi mà object
context không có sẵn. Việc theo dõi những thay đổi trong object
context đều do self-tracking entities đảm nhận.



Ngoài ra, nó còn có chức năng tracking function và thực hiện
IObjectWithChange Tracker và interface INotifyPropertyChanged.
Xây dựng và triển khai Web Service cho ứng dụng di động

22


2.7 Thiết lập quan hệ cho Entity
Có 3 kiểu thiết lập:

• Quan hệ mợt – mợt (One-to-One Relationship)
• Quan hệ mợt – nhiều (One-to-Many
Relationship)

• Quan


hệ

nhiều



nhiều

(Many-to-Many

Relationship)

Xây dựng và triển khai Web Service cho ứng dụng di động

23


2.7 Thiết lập quan hệ cho Entity

• Quan hệ mợt – một (One-to-One Relationship)
 Mỗi hàng ở một bảng này chỉ có thể quan hệ duy nhất
với một hàng khác trong bảng khác.
 Quan hệ này thường không phổ biến, và nó có thể có
tới hai chiều khác nhau tùy vào cách bạn thiết kế
CSDL.

Xây dựng và triển khai Web Service cho ứng dụng di động

24



2.7 Thiết lập quan hệ cho Entity



Quan hệ mợt – một (One-to-One Relationship)
 Ví dụ

Xây dựng và triển khai Web Service cho ứng dụng di động

25


×