Lập trình C# – Microsoft ADO.NET Entity Framework – Database First

Như đã hứa trong bài “Lập trình C# – Kết nối cơ sở dữ liệu sử dụng Entity Framework“, hôm nay tôi sẽ giới thiệu với các bạn về Entity Framework. Theo cách hiểu đơn giản ADO.NET Entity Framework là một khung Object Relational Mapping (ORM). Đây là kỹ thuật truy cập cơ sở dữ liệu (Access Database) giúp lập trình viên lấy dữ liệu và lưu một cách nhanh chóng đồng thời các kết quả trả về thông qua đối tượng DataReader, DataSet và Class sẽ dễ dàng cho lập trình viên xử lý.

1. Microsoft ADO.NET Entity Framework

Entity Framework hỗ trợ 3 cách làm việc với cơ sở dữ liệu Database First, Model First, Code First, cụ thể theo 4 workflow như sau:

– Database First: Trong trường hợp bạn muốn làm việc với database đã có sẵn. Sử dụng công cụ thiết kế có sẵn trong Visual Studio kết nối database sẽ giúp ta tạo ra các model bao gồm lớp và thuộc tính . Các thông tin về cấu trúc dữ liệu của bạn (Store Schema), mô hình dữ liệu (Conceptual Model), và mối quan hệ giữa chúng được lưu trữ dưới dạng XML trong một tập tin .edmx. Entity Framework cung cấp một giao diện hiển thị và chỉnh sửa các tập tin .edmx.
– Model First: Trong trường hợp này, chúng ta sử dụng các thiết kế Entity Framework trong Visual Studio tạo ra model trong một tập tin .edmx. Dùng công cụ để generated code từ bản thiết kế model ra database.
– Code First: Riêng với cách này có 2 lựa chọn, làm việc với database có sẵn hoặc sẽ tạo mới. Nhưng dù làm với cách nào, chúng ta cũng dùng codebehind để xử lý là chính. Không dùng các tool, giao diện trực quan giống như 2 cách bên trên.
Việc lựa chọn workflow  phù hợp cho chương trình của bạn phụ thuộc vào câu trả lời cho hai câu hỏi sau:
Câu hỏi 1: Bạn tạo sẵn cơ sở dữ liệu với các bảng hay chưa?
Câu hỏi 2: Bạn muốn tạo các Model theo cách viết code hay dựa vào giao diện thiết kế?
Trong quy trình xây dựng ứng dụng, thông thường cơ sở dữ liệu sẽ được xây dựng trước việc này có thể do nhân viên phân tích thiết kế chuyên về cơ sở dữ liệu làm hay với các ứng dụng đơn giản hơn thì lập trình viên thực hiện. Sau đó tùy theo yêu cầu phát sinh trong quá trình thực hiện hay từ khách hàng mà ta điều chỉnh cơ sở dữ liệu này. Vậu câu trả lời cho  câu hỏi 1 thông thường là có.
Câu trả lời cho câu hỏi  hai thì tùy vào lập trình vên với các ứng dụng đơn giản nhanh thì có thể thiết kế model theo giao diện, nếu lập trình viên cần kiểm soát chặt chẽ code của chương trình thì việc code model bằng tay được thược hiện.
Trong bài “Lập trình C# – Kết nối cơ sở dữ liệu sử dụng Entity Framework” tôi đã giới thiệu cách làm việc Code First( tự code không dùng giao diện kéo thả) và Existing Database (cơ sở dữ liệu có sẳn).

 

2.Tạo demo DataBase First

 

Trong phần này tôi xin sử dụng Microsoft ADO.NET Entity Framework theo cách Database First (cơ sở dữ liệu có trước) và xây dựng Model theo giao diện. Những gì chúng ta sẽ là từ cơ sở dữ liệu có sẵn chúng ta sẽ tạo ra Model và lớp DbContext để thực hiện truy vấn database.

Chúng ta sử dung cơ sở dữ liệu như các bài trước có dạng:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Trước tiên chúng ta chọn folder Model click phải chuột chọn “Add”  “New Item ..”:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Chọn và đặt tên cho Model này là  “DemoModels”

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Chúng ta tạo một kết nối mới bằng cách click “New Connection…”:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Sau các thao tác trên Visual Studio chọn cơ sở dữ liệu nào để kết nối, ở đây chúng ta dùng MS SQL nên chọn theo hình:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Các bạn điền thông tin chuỗi kết nối, kiểm tra thông tin đã chính xác chưa:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Chọn như hình dưới:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Hộp thoại tiếp theo chúng ta sẽ chọn những gì cần tạo ở đây do database chỉ có một bảng nên tôi chọn bảng Customer, nếu các bạn có nhiều bảng thì có thể chọn nhiều bảng một lúc. Ngoài ra các store và view cũng có thể được chọn.

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Đến đây thao tác của chúng ta đã hoàn tất kiểm tra lại thư mục Model bạn sẽ thấy các file được tạo:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Đến đây chúng ta đã hoàn thành việc tạo Model và lớp DbContext để sử dụng chúng các bạn mở controller Customer thay đổi code như bên dưới:

1
2
3
4
5
6
public ActionResult GetCustomerById(int Id)
{
    MVC_DEMOEntities demoEntities = new MVC_DEMOEntities();
    Customer customer = demoEntities.Customers.Single(emp => emp.CustomerId == Id);
    return View(customer);
}

 

Chạy website theo đường link sau và chúng ta có kết quả:

 

Lập trình C# - Microsoft ADO.NET Entity Framework - Database First

 

Quốc Huân.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s