Trong bài viết này, chúng ta sẽ đi tìm hiểu cách sử dung Entity Framework đầu tiên. Đó là Database First, đây là cách cơ bản nhất và được sử dụng từ đầu khi EF mới phát hành.

Cách Làm Việc Bằng Database First  ?

- Dựa vào database có sẵn của bạn, EF xuất ra thành model thiết kế trên Visual Studio. Cụ thể, chúng ta sẽ dùng ADO.NET Entity Data Model để tạo một file dạng *.edmx. Model này là khung thiết kế trực quan, gồm các Entity đại diện cho các Tabel trong cơ sở dữ liệu của bạn và bạn có thể chỉnh sửa các Entity này.

- Dựa vào các model sinh mã tự động ra các lớp. Các lớp này đại diện cho các bảng trong database. Khi làm việc với phương pháp này ta sẽ cần một vài yêu cầu sau:
  • Đầu tiên, bạn phải có một cơ sở dữ liệu đã được tạo sẵn trên hệ quản trị cơ sở dữ liệu (Trong ví dụ dưới đây chúng ta sử dụng SQL Server) 
  • Quan trọng nhất là bạn đã cài đặt Entity Framework cho dự án bạn

Tóm Tắt Cách Tiếp Cận DatabaseFirst Trong Entity Framework

  • B1: Yêu cầu bạn đã có database được tạo sẵn
  • B2: Cài đặt Nuget Package cho Visual Studio để quản lý các gói cài đặt cho dữ án.
  • B3: Cài đặt EntityFramework cho dự án của bạn
  • B4: Tạo Model dựa trên database có sẵn của bạn
  • B5: Thao tác với database của bạn

Cài Đặt Entity Framework

- Đối với Visual 2012,2013 chúng ta có thêm công cụ  Entity Framework Tools For Visual StudioCác bạn có thể tải nó tại đây: http://www.microsoft.com/en-eg/download/details.aspx?id=40762
Nó giúp đẩy nhanh quá trình code với công việc generated code cho cả CodeFirst. Bạn có thể sử dụng hoặc không sử dụng nó, đây chỉ là một công cụ bổ trợ cho EF để code nhanh hơn mà thôi.
(Đối với visual studio 2010 trở xuống, ta bỏ qua bước cài đạt Tool trên.)
Lưu ý: Bạn không cần phải cài tools trên nếu không muốn. Không có vấn đề gì cả .....

- Khi sử dụng Visual Studio bạn nên cài đặt gói Nuget. Nó là công cụ quản lý các package để lập trình trên nền tảng .NET. Và EF là một package cho dự án của bạn.

- Cách cài đặt Nuget Package Manager :
Các bạn có thể tải trực tiếp từ đây: http://docs.nuget.org/docs/start-here/installing-nugget
Hoặc làm theo cách sau:

B1: Mở Visual Studio
B2: Menu -> Tools ->Extensions and Updates.
- Tìm online và gõ từ khóa Nuget Package Manager để tìm kiếm. (Với VS 2013 tên có thể được thêm thắt một chút) . Sau khi cài đặt xong, có thể cần restart Visual Studio nếu có yêu cầu.



B3: Cài Entity Framework Cho project của bạn
Tiếp tục vào Menu->Tools->Nuget Package Manager. Bạn chọn cài đặt bằng giao diện hoặc bằng lệnh với Console, loại nào cũng được....


Nếu cài đặt EF bằng giao diện Manager thì gõ từ khóa Entity Framework để tìm kiếm và cài đặt vào project của bạn

 Nếu bạn thích gõ lệnh hơn, thì chọn phần Console và gõ lệnh như sau:
Install-Package EntityFramework  ENTER



Lưu ý: Mỗi dữ án muốn sử dụng EntityFramework bạn phải cài đặt từ đầu.


Khởi Tạo Model Dựa Trên Database Có Sẵn


B1: Chuột phải vào dữ án của bạn chọn: Add- > New Item .
Gõ tìm kiếm ADO.NET Entity Data Model. Nhập tên Model của bạn.....

B2: Chọn EF Designer From Database. (Hình dưới có khi bạn đã cài đặt công cụ EF Tools For Visual Studio) Nếu không cài đặt, bạn hãy chọn vị trí đầu tiên Generate From Database. Vấn đề này không quan trọng, bạn cần hiểu là tạo thiết kế từ database có sẵn là được.


B3:Chọn New Connection để chọn lại database của bạn. Đặt tên tại mục này kèm theo hậu tố Context vì nó kế thừa từ lớp DbContext . Bạn có thể hình dung DbContext giống giống Dataset trong ADO.NET trước đây, với nhiệm vụ lưu giữ dữ liệu tạm thời và chờ cập nhật xuống database


B4:Chọn Server và Database của bạn. Sau bước này tool sẽ quay lại B3, bạn hãy nhấn Next


B5:Chọn các Table của bạn, phần đặt tên với hậu tố Model.


B6: Hoàn tất khởi tạo model, ta được một tập tin *.edmx chứa các Classes,Properties, DbContext.


Thao Tác Với Cơ Sở Dữ Liệu

- Sau khi cài đặt Entity Framework, nó đã đảm nhiệm nhiệm vụ kết nối và ánh xạ xuống cơ sở dữ liệu của bạn.
Đối với ví dụ này, yêu cầu là bạn đã tạo database trên hệ quản trị cơ sở dữ liệu rồi. Ở đây ta thực hiện demo giao diện Console với SQL Server.

Ví dụ đầu tiên 1: Tải lên danh sách bảng sinh viên, in ra hai trường cụ thể bên dưới ...


using System;
using System.Linq;

namespace DemoDatabaseFirst
{
class Program
{
static void Main(string[] args)
{
using (var db = new MyDataDemoContext())
{
var query = from sv in db.SinhViens select sv;
foreach (var sinhVien in query)
{
Console.WriteLine(sinhVien.HoTenSV + " " + sinhVien.NgaySinh);
}
}
Console.ReadKey();
}
}
}

Từ khóa Using đảm bảo sau khi sử dụng, tài nguyên sẽ được giải phóng.
Từ khóa Var là thủ thuật trong C# thôi, nó đại diện cho kiểu của vế bên phải (Lưu ý từ khóa này chỉ dùng bên trong phương thức)

Ví dụ 2: Nhập dữ liệu


using System;
using System.Linq;

namespace DemoDatabaseFirst
{
class Program
{
static void Main(string[] args)
{
using (var db = new MyDataDemoContext())
{

// Insert data
var sinhvien = new SinhVien
{
MaSV = "masv02",
HoTenSV = "Le Minh Tuan",
MaKhoa ="CNTT"
//.............
};
db.SinhViens.Add(sinhvien);
db.SaveChanges();

// Print data
var query = from sv in db.SinhViens select sv;
foreach (var sv in query)
{
Console.WriteLine(sv.MaSV+ " " + sv.HoTenSV + " " + sv.MaKhoa);
}
}
Console.ReadKey();
}
}
}

Ví dụ 3: Cập nhật dữ liệu


using (var db = new MyDataDemoContext())
{
// Update data
var sinhvien = (from s in db.SinhViens
where s.MaSV == "masv01"
select s).FirstOrDefault();

if (sinhvien != null)
{
sinhvien.HoTenSV = "Tên mới";
sinhvien.MaKhoa = "XD";
//...........................
}
db.SaveChanges();
}

Ví dụ 4: Xóa dữ liệu


using(var db = new MyDataDemoContext())
{
var sinhvien = (from s in db.SinhViens
where s.MaSV == "masv01"
select s).FirstOrDefault();
db.SinhViens.Remove(sinhvien);
db.SaveChanges();
}

Trên đây là những cách cơ bản để thao tác trong cách tiếp cận DatabaseFirst, những vấn đề nâng cao chúng ta sẽ tìm hiểu trong một phần khác.

Các bạn có thể sử dụng Database mẫu bên dưới:

SQL Server -> New Query -> Execute:


IF EXISTS ( SELECT [name] FROM sys.databases WHERE [name] = 'MyDataDemo' )
DROP DATABASE MyDataDemo
GO

CREATE DATABASE MyDataDemo
GO
USE MyDataDemo
CREATE TABLE Khoa
(
MaKhoa varchar(10) PRIMARY KEY,
TenKhoa varchar(50)
)

CREATE TABLE SinhVien
(
MaSV varchar(10) PRIMARY KEY,
HoTenSV nvarchar(50),
NgaySinh date,
QueQuan nvarchar(255),
MaKhoa varchar(10) FOREIGN KEY REFERENCES Khoa(MaKhoa)ON UPDATE CASCADE
)


Update: 27/03/2014

thumbnail ADO.NET Entity Framework: Database First

data:label.name author

premiumpng.com

Design Publisher

Download 0
No comments
Template in .PSD format

MR Laboratory License

Free for personal purpose use . More info


Buy Now This Template

No comments:

Post a Comment

Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free

Newer Post Older Post Home

Copyright © 2021 MR Laboratory All rights reserved.

Setting