1. Trang chủ
  2. » Công Nghệ Thông Tin

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

43 19 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 2,73 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 •

Trang 1

Trường ĐH Khoa Học Tự Nhiên Tp Hồ Chí Minh

TRUNG TÂM TIN HỌC

2015

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

Trang 2

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

2 Entity Framework (EF)

Nội dung

Trang 3

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 xuố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

Trang 4

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.

Trang 5

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

• Thực hiện truy vấn với EDM , thực hiện thêm, xóa, sửa trên Entity (CRUD).

Nội dung

Trang 6

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ỗ

Trang 7

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,…)

Trang 8

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:

Trang 9

2.2 Kiến trúc Entity Framework

Mô hình kiến trúc Entity Framework

Trang 10

2.2 Kiến trúc Entity Framework

EDM (Entity Data Model)

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

Trang 11

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,…

Trang 12

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

Trang 13

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

Trang 14

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:

Install-Package EntityFramework

Trang 15

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ó

Trang 16

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 chuộ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 muố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.

Trang 17

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ế

Trang 18

2.5 DBContext

• Là đối tượng UnitOfWork - là mẫu thiết kế về truy xuấ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

Trang 19

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 thuộc tính:

Scalar properties

• Gồm các thuộc tính nằm trong một entity

• Ứng với Entity Teacher có scalar properties là TeacherId, TeacherName, StandardId

Trang 20

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

Trang 21

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

POCO (Plain Old CLR Object)

set; } }

Trang 22

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.

Trang 23

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)

Trang 24

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

Trang 25

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

• Quan hệ một – một (One-to-One Relationship)

Ví dụ

Trang 26

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

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

 Là một thực thể (Entity) sẽ có quan hệ với nhiều thực thể

khác nhau

 Trong quan hệ một nhiều, mỗi record của bảng này có thể có

quan hệ với nhiều hàng thuộc bảng khác

Trang 27

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

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

Ví dụ

Trang 28

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

• Quan hệ nhiều – nhiều (Many-to-Many Relationship)

 Là một record của bảng này có quan hệ với nhiều record

trong bảng khác

Trang 29

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

• Quan hệ nhiều – nhiều (Many-to-Many Relationship)

Ví dụ

Trang 30

2.8 Vòng đời của Entity

Trang 31

2.9 Các cách tiếp cận trong lập trình với

Entity Framework

Có 3 cách tiếp cận trong lập trình với Entity Framework: Code

First, Models First, Database First

Trang 32

2.9 Các cách tiếp cận trong lập trình với

Entity Framework

Database first

 Được hỗ trợ từ phiên bản EF 1 trong Visual Studio 2008.

 EF sẽ tự động tạo ra mô hình dữ liệu (data model) và các lớp (object

layer) từ CSDL có sẵn thông qua công cụ Entity Data Model Wizard.

 Chúng ta có thể thay đổi mô hình dữ liệu và cập nhật lại vào CSDL.

 Là cách tiếp cận phổ biến vì cách thực hiện đơn giản, nhanh chóng.

Trang 33

2.9 Các cách tiếp cận trong lập trình với

Entity Framework

Models first

 Được bổ sung từ phiên bản EF 4 trong Visual 2010.

 Ta có thể tạo một mô hình dữ liệu (data model) rỗng bằng công cụ

Entity Data Model Designer, khi đó object layer cũng tự động được sinh ra

 Sau khi đã hoàn thành việc thiết kế, ta có thể sử dụng chức năng

Generate Database from Model để tạo ra các mã DDL (data definition language) dựa trên mã SSDL (Store Schema Definition Language) Các mã DDL này sẽ được thực thi và lưu thành tập tin sql.

→ Dùng khi ta bắt đầu thiết kế CSDL từ đầu (từ chưa có gì).

Trang 34

2.9 Các cách tiếp cận trong lập trình với

Entity Framework

Code First

 Hướng tiếp cận này bỏ qua phần Model (.edmx)

 Ta có thể thiết kế các lớp (class) tương ứng với các table của

CSDL mà ta cần làm việc hoặc muốn tạo ra

 Sử dụng class DbContext để thao tác với CSDL

Trang 35

2.10 Truy vấn với EDM

Có 3 loại truy vấn trong EF:

Trang 36

2.10 Truy vấn với EDM

Trang 37

2.10 Truy vấn với EDM

LINQ to Entities

 Ví dụ truy vấn với LINQ to Entities dùng cú pháp LINQ Method:

 Ví dụ truy vấn với LINQ to Entities dùng cú pháp LINQ Query :

Trang 38

2.10 Truy vấn với EDM

Trang 39

2.10 Truy vấn với EDM

Trong lớp ObjectContext có thêm các phương thức ExecuteFunction(), ExecuteStoreQuery(), ExecuteStoreCommand()

Ví dụ:

Trang 40

2.11 Thêm, xóa, sửa trên Entity (CRUD).

Ví dụ thêm 1 Entity (Add Entity)

Trang 41

2.11 Thêm, xóa, sửa trên Entity (CRUD).

Ví dụ cập nhật 1 Entity (Update Entity)

Trang 42

2.11 Thêm, xóa, sửa trên Entity (CRUD).

Ví dụ xóa 1 Entity (Delete Entity)

Ngày đăng: 30/10/2021, 14:01

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w