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 (1.81 MB, 76 trang )
đối tượng bussiness (hay object layer) trong ứng dụng. Dựa vào sự lựa
chọn thành phần nào sẽ được tạo ra trước, một ứng dụng Entity
Framework (EF) có thể sử dụng 1 trong 3 cách tiếp cận: Database First,
Model First và Code First.
Các sơ đồ dưới đây minh hoạt mối quan hệ và thứ tự tạo ra giữa
các thành phần dữ liệu trong ứng dụng của Entity Framework. Phần Model
tương ứng với tập tin .edmx, Code tương ứng với tập tin .cs (hoặc .vb nếu
bạn dùng VB.NET).
24
Note: Bạn có thể nhận thấy rằng phần Model luôn được theo sau bởi
Code, điều này là nhờ công cụ Entity Data Model Designer trong Visual tự
động tạo ra code tương ứng mỗi khi bạn thực hiện chỉnh sửa tập tin
.edmx.
Code là 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 là 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 là cơ sở dữ liệu (có thể là SQL Server, Compact
SQL Server, Local database, MySQL, Oracle,…)
-
Database first:
Đây là cách thông thường và được hỗ trợ từ phiên bản EF 1 trong
Visual Studio 2008.EF sẽ tự động tạo ra data model và các class (object
layer) cho bạn từ database có sẵn thơng qua cơng cụ Entity Data Model
Wizard. Bạn có thể thay đổi data model và cập nhật lại vào database. Đây
là cách tiếp cận phổ biến vì cách thực hiện đơn giản, nhanh chóng.
25
Phương pháp chỉ nên dùng khi ta đã có sẵn CSDL (khơng phải tạo.
-
Models first:
Hướng tiếp cận này được bổ sung từ phiên bản EF 4 trong Visual
2010.
Bạn có thể tạo một 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 đã hồn
thành việc thiết kế, bạn 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.
Nên dùng khi ta bắt đầu thiết kế CSDL từ đầu (từ chưa có gì).
Code first:
Với phiên bản EF 4 bạn cần phải cài thêm thư viện EF Feature CTP
(Community Technology Preview) để sử dụng. Tuy nhiên tính năng này đã
được tích hợp vào trong phiên bản EF 4.1 và với phiên bản VS 2010 hiện
tại thì bạn cần phải download để cài đặt thủ công.
Hướng tiếp cận này bỏ qua phần Model (.edmx), bạn có thể thiết kế
các class tương ứng với các table của database mà bạn cần làm việc
hoặc muốn tạo ra. Với hướng tiếp cận này, bạn sẽ sử dụng class
DbContext thay vì ObjectContext để thao tác với database. Việc sử dụng
Code First đòi hỏi bạn phải thực hiện các công việc một cách thủ cơng
nhưng bù lại nó linh hoạt và được sử dụng rất phổ biến.
Nên dùng khi đã có mơ hình CSDL, ta sẽ chỉ viết code từ đó tạo Database.
Dù cách nào thì cuối cùng cũng phải có Code để thao tác trong mã
lệnh và Database để lưu trữ dữ liệu. Model chỉ là một thành phần trung
gian.
Theo kinh nghiệm của nhiều lập trình viên đi trước, Code First là
phương án mềm dẻo nhất (hơi mất công ngồi gõ code, tuy nhiên nếu dùng
tốt code snippets thì đỡ nhiều).
Trước đây khi lập trình CSDL trong VB, VC,… ta ln tạo CSDL liệu
trước, sau đó mới xây dựng mã lệnh truy cập dữ liệu.
Trong bài này tôi sẽ hướng dẫn tạo 1 project Code First với cơ sở
dữ liệu có sẵn.
26
A.
Tạo EDM theo hướng Database First (Step by Step)
Phần này bạn sẽ được hướng dẫn cách tạo một Entity Data Model từng
bước dựa vào công cụ Entity Data Model Designer.
Bước 1: Tạo dự án mới với kiểu là Console Application.
Bước 2: Nhấn Add New Item (Ctrl+Shift+A) trên thanh công cụ và chọn
mục ADO.NET Entity Data Model trong hộp thoại hiện ra. Đặt tên mục sắp thêm
vào là MusicModel phần mở rộng mặc định là .edmx. Nhấn Add.
Bước 3: Cửa sổ Entity Data Model Wizard hiện ra. Bước này để xác định
bạn sẽ tạo model từ database có sẵn hoặc một model rỗng. Bạn để lựa chọn
mặc định là Generate from database và nhấn Next.
27
Bước 4: Bước này bạn cần chọn database nào sẽ sử dụng. Chuỗi kết nối
sẽ tự động được sinh trong phần Entity connection string. Với tùy chọn Save
entity connection settings in App.Config, chuỗi kết nối này sẽ tự động được thêm
vào tập tin App.Config, nhờ đó bạn khơng cần nhớ chuỗi kết nối mà chỉ cần nhớ
tên của kết nối là MusicStoreEntities.
Trong trường hợp bạn chưa có sẵn kết nối với database nào, hãy nhấn nút New
Connection… Các kết nối mà bạn đã tạo sẽ hiện ra trong cửa sổ Server
Explorer. Nhấn Next.
28