Tải bản đầy đủ

Thiết kế entity data model part 1 database first

Là thành phần trung gian giữa ứng dụng và database, Entity Data Model (EDM) giúp tạo liên
kết và mô tả giữa nguồn dữ liệu vật lý và các đố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).

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.
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
Model 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 đã hoà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.
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.

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. Dữ liệu nguồn được sử dụng trong ví dụ là Northwind
(download tại http://www.microsoft.com/download/en/details.aspx?id=23654).
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à NorthwindModel
với 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.


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à NorthwindEntities.


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.
Bước 5: Lựa chọn các table, view và stored procedure bạn muốn sử dụng. Trong ví dụ này, tôi
chỉ sử dụng ba table là Orders, Order Details và Products.


Sau khi nhấn Finish, tập tin NorthwindModel.edmx sẽ được thêm vào Solution Explorer.
Đây là tập tin có dạng .xml và được mở với trình mặc định ADO.NET Entity Data Model
Designer với giao diện trực quan như hình dưới. Nếu muốn coi nội dung của tập tin này dưới
dạng văn bản .xml, bạn nhấn chuột phải vào tập tin trong Solution Explorer > Open With…
và chọn XML Editor. Bạn có thể coi các thông tin đầy đủ của model trong cửa sổ Model
Browser và Mapping Details.


Ngoài tập tin .edmx trên, một tập tin khác cũng được tự động tạo ra là
NorthwindModel.Designer.cs. Tập tin này chứa code C# được sinh ra cho các class bạn sẽ
sử dụng trực tiếp khi lập trình. Các class này được gọi là Object Layer (là phần Object
Services trong kiến trúc của Entity Framework).
Khảo sát tập tin này, bạn sẽ thấy nó bao gồm các class là: NorthwindEntities, Order,
Order_Detail và Product. Trong đó, class NorthwindEntities chính là class thừa kế từ
ObjectContext mà bạn cần sử dụng để tạo kết nối và thao tác với database.

Kiểm tra kết quả với LINQ to Entities
Việc sử dụng LINQ to Entities rất đơn giản, tương tự như LINQ to SQL. Bạn chỉ cần làm việc
với các class của object layer và property của chúng. Ví dụ sau in ra các sản phẩm có
CategoryID là 1 trong bảng Products:
1 // ...


2
3
4 NorthwindEntities db = new NorthwindEntities();
5 var query = from p in db.Products
6
where p.CategoryID == 1
7
select p.ProductName;
8
9 foreach (var item in query)
1 {
Console.WriteLine(item);
0 }
11 // ...
1
2
Output:
Chai
Chang
Guaraná Fantástica
Sasquatch Ale
Steeleye Stout
Côte de Blaye
Chartreuse verte
Ipoh Coffee
Laughing Lumberjack Lager
Outback Lager
Rhönbräu Klosterbier
Lakkalikööri

————————————https://yinyangit.wordpress.com
Bài liên quan


Tổng quan kiến trúc của Entity Framework



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×

×