linq n hibernate net-tier

110
06/07/22 1 LINQ N-HIBERNATE NET-TIER Nhóm D GVLT: Th.S Lâm Quang Vũ GVHD: Nguyễn Huy Khánh

Upload: nguyen-tran

Post on 04-Dec-2014

3.660 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Linq n hibernate net-tier

04/09/23 1

LINQN-HIBERNATENET-TIER

Nhóm D

GVLT: Th.S Lâm Quang Vũ

GVHD: Nguyễn Huy Khánh

Page 2: Linq n hibernate net-tier

04/09/23 2

Giới thiệu về ORM• Object – Relational Mapping (ORM, O/RM,

O/R mapping)

• Là một kỹ thuật lập trình để chuyển đổi dữ liệu giữa các hệ thống không tương thích trong cơ sở dữ liệu quan hệ và các ngôn ngữ lập trình hướng đối tượng.

Page 3: Linq n hibernate net-tier

04/09/23 3

LINQNhóm D1 + D2

GVLT: Th.S Lâm Quang Vũ

GVHD: Nguyễn Huy Khánh

Page 4: Linq n hibernate net-tier

04/09/23 4

Thành viên nhóm• Nhóm D1: Phạm Ngọc Phú – 0612352 Phan Vũ Liêm – 0612207 Thái Ngân Phụng – 0612358 Nguyễn Thành Luân – 0612234 Lữ Thị Mỹ Phương – 0612339

• Nhóm D2: Lê Thành Dũng – 0512103 Hứa Chí Châu – 0512080 Bùi Việt Dũng – 0512101 Trương Hữ Giang – 0512110 Nguyễn Phước Hiền – 0512113

Page 5: Linq n hibernate net-tier

04/09/23 5

Giới thiệu về LINQ

Lợi ích sử dụng LINQ

Ưu, khuyết điểm của LINQ

Hình ảnh Demo4

1

2

3

Nội dung chính

Page 6: Linq n hibernate net-tier

04/09/23 6

Giới thiệu về LINQ1

LINQ

Page 7: Linq n hibernate net-tier

04/09/23 7

Giới thiệu về LINQ• LINQ (Language Integrated Query) – Ngôn ngữ

truy vấn tích hợp - Ngôn ngữ thống nhất cách thức truy xuất dữ liệu trong .NET.

• Được phát triển từ năm 2003, và được công bố tại Hội nghị Microsoft Professional Developers vào 2005 do Anders Hejlsberg và nhóm của ông đã trình bày.

• Được tích hợp sẵn trong Visual Studio 2008 (.NET 3.5).

Page 8: Linq n hibernate net-tier

04/09/23 8

Giới thiệu về LINQ

• LINQ được phân thành 3 loại:

– LINQ to Objects

– LINQ to XML

– LINQ to SQL

Page 9: Linq n hibernate net-tier

04/09/23 9

Giới thiệu về LINQ

Lợi ích sử dụng LINQ

Ưu, khuyết điểm của LINQ

Hình ảnh Demo4

1

2

3

LINQ

Page 10: Linq n hibernate net-tier

04/09/23 10

Lợi ích sử dụng LINQ2

LINQ

Page 11: Linq n hibernate net-tier

04/09/23 11

Lợi ích sử dụng LINQ• Nó cung cấp một cách chung để truy xuất dữ

liệu từ bất kỳ nguồn nào với cùng một cú pháp.

• Giúp thực hiện truy vấn một cách dễ dàng hơn.

• Được tích hợp như cú pháp của ngôn ngữ lập trình.

Page 12: Linq n hibernate net-tier

04/09/23 12

Giới thiệu về LINQ

Lợi ích sử dụng LINQ

Ưu, khuyết điểm của LINQ

Hình ảnh Demo4

1

2

3

LINQ

Page 13: Linq n hibernate net-tier

04/09/23 13

Ưu, khuyết điểm của LINQ3

LINQ

Page 14: Linq n hibernate net-tier

04/09/23 14

Ưu, khuyết điểm của LINQƯu điểm:

• Lập trình với cơ sở dữ liệu một cách dễ dàng.

• Không cần biết nhiều ngôn ngữ truy vấn khác mà vẫn có thể làm việc.

• Đơn giản hóa việc viết truy vấn.

Khuyết điểm:

• Lệ thuộc vào môi trường lập trình .NET

Page 15: Linq n hibernate net-tier

04/09/23 15

Giới thiệu về LINQ

Lợi ích sử dụng LINQ

Ưu, khuyết điểm của LINQ

Hình ảnh Demo LINQ to SQL4

1

2

3

LINQ

Page 16: Linq n hibernate net-tier

04/09/23 16

Hình ảnh Demo LINQ to SQL4

LINQ

Page 17: Linq n hibernate net-tier

04/09/23 17

Thêm CSDL vào Project

Page 18: Linq n hibernate net-tier

04/09/23 18

Thêm CSDL vào Project

Page 19: Linq n hibernate net-tier

04/09/23 19

Thêm CSDL vào Project

Page 20: Linq n hibernate net-tier

04/09/23 20

Thêm lớp LINQ to SQL

Page 21: Linq n hibernate net-tier

04/09/23 21

Thêm lớp LINQ to SQL

Page 22: Linq n hibernate net-tier

04/09/23 22

Thêm lớp LINQ to SQL

Page 23: Linq n hibernate net-tier

04/09/23 23

Thêm lớp LINQ to SQL

Page 24: Linq n hibernate net-tier

04/09/23 24

Thêm lớp LINQ to SQL

Page 25: Linq n hibernate net-tier

04/09/23 25

Cấu trúc quản lý của LINQ to SQL

Page 26: Linq n hibernate net-tier

04/09/23 26

Thêm, xóa, sửa dữ liệu

Page 27: Linq n hibernate net-tier

04/09/23 27

Load dữ liệu lên FormLoad tất cả thông tin các loại sách ở bảng LoaiSach trong cơ sở dữ liệu lên form.

Page 28: Linq n hibernate net-tier

04/09/23 28

Thêm dữ liệuThêm một loại sách mới vào bảng LoaiSach trong cơ sở dữ liệu.

Page 29: Linq n hibernate net-tier

04/09/23 29

Cập nhật dữ liệuCập nhật thông tin loại sách vào bảng LoaiSach trong cơ sở dữ liệu.

Page 30: Linq n hibernate net-tier

04/09/23 30

Xóa dữ liệuXóa một loại sách ra khỏi bảng LoaiSach trong cơ sở dữ liệu.

Page 31: Linq n hibernate net-tier

04/09/23 31

Truy vấn trên một bảng

Tra cứu thông tin loại sách theo mã loại sách.

Page 32: Linq n hibernate net-tier

04/09/23 32

Truy vấn trên nhiều bảng

Lấy thông tin tên sách, tên loại sách, tác giả, tên nhà xuất bản của tất cả các sách.

Page 33: Linq n hibernate net-tier

04/09/23 33

Sử dụng distinct

Lấy tất cả tên loại sách trong bảng LoaiSach. Mỗi tên chỉ xuất hiện 1 lần.

Page 34: Linq n hibernate net-tier

04/09/23 34

Sử dụng Order By

Sắp xếp tên các loại sách trong bảng LoaiSach theo thứ tự tăng dần.

Page 35: Linq n hibernate net-tier

04/09/23 35

Sử dụng Group By

Ứng với mã loại sách là 1, đếm số lượng sách theo tên sách.

Page 36: Linq n hibernate net-tier

04/09/23 36

Sử dụng joinLấy thông tin tên sách, tên loại sách, tác giả của tất cả các sách.

Page 37: Linq n hibernate net-tier

04/09/23 37

Tham khảo• LINQ for Visual C Sharp 2008 Jun 2008 –

Fabio Claudio Ferracchiati

• Professional LINQ - Scott Klein

Page 38: Linq n hibernate net-tier

04/09/23 38

NHibernateNhóm D3 + D5

GVLT: Th.S Lâm Quang Vũ

GVHD: Nguyễn Huy Khánh

Page 39: Linq n hibernate net-tier

04/09/23 39

Thành viên nhóm• Nhóm D3: Ngô Minh Nhựt – 0612322 Võ Quang Nhật – 0612318 Lê Nguyễn Hoài Nam – 0612276 Huỳnh Công Tín – 0612534 Nguyễn Văn Nhật – 0612314

• Nhóm D5: Trần Nguyễn Hướng – 0412310 Lê Văn Thắng – 0512335 Trương Hoàng Linh – 0412315 Huỳnh Minh Hoàng – 0512126 Tôn Long Thịnh – 0512344

Page 40: Linq n hibernate net-tier

04/09/23 40

Giới thiệu

Sử dụng NHibernate

Ưu, khuyết điểm4

1

2

Nội dung chính

Page 41: Linq n hibernate net-tier

04/09/23 41

Giới thiệu• Hibernate: là Framework mở nguồn mở hỗ

trợ truy xuất CSDL cho các ứng dụng hướng đối tượng sử dụng CSDL quan hệ

• NHibernate: dành cho ứng dụng .NET

• Là các DLL chứa các lớp đối tượng

Page 42: Linq n hibernate net-tier

04/09/23 42

NHibernate trong mô hình 3 lớp:

Giới thiệu

Page 43: Linq n hibernate net-tier

04/09/23 43

Giới thiệu

• NHiberate có nhiệm vụ chuyển đổi dữ liệu giữa ứng dụng và CSDL: – Đọc – Ghi• Ánh xạ CSDL vào NHibernate dựa vào tập tin

hibernate.cfg.xml• Ánh xạ giữa lớp và bảng dựa vào tập tin cấu

hình *.hbm.xml

Page 44: Linq n hibernate net-tier

04/09/23 44

Giới thiệu

Lịch sử:

- Được bắt đầu bởi: Tom Barrett

- 2005, JBoss, Inc. (thuộc Red Hat) đầu tư phát triển dựa án này

- 2006 JBoss ngừng hỗ trợ

- Hiện tại, NHibernate được phát triển chung

- www.hibernate.com/343.html

Page 45: Linq n hibernate net-tier

04/09/23 45

Giới thiệu

Lịch sử: các phiên bản

• NHibernate 1.2.1: 11/2007, hỗ trợ .NET 2.0

• NHibernate 2.1: đang được phát triển

• NHibernate 3.0: phiên bản dự kiến dành

cho .Net 3.5

Page 46: Linq n hibernate net-tier

04/09/23 46

Giới thiệu

Sử dụng NHibernate

Ưu, khuyết điểm4

1

2

Nội dung chính

Page 47: Linq n hibernate net-tier

04/09/23 47

Sử dụng NHibernate

Cài đặtTạo Project, add referenceTạo CSDL và các lớp đối tượngTạo các tập tin cấu hìnhTruy xuất dữ liệu

Page 48: Linq n hibernate net-tier

04/09/23 48

Sử dụng NHibernate

Cài đặtTạo Project, add referenceTạo CSDL và các lớp đối tượngTạo các tập tin cấu hìnhTruy xuất dữ liệu

Page 49: Linq n hibernate net-tier

04/09/23 49

Cài đặt

Download NHibernate tại: www.hibernate.com/6.html

Chép thư mục chứa DLL vào thư mục chứa Project

Page 50: Linq n hibernate net-tier

04/09/23 50

Sử dụng NHibernate

Cài đặtTạo Project, add referenceTạo CSDL và các lớp đối tượngTạo các tập tin cấu hìnhTruy xuất dữ liệu

Page 51: Linq n hibernate net-tier

04/09/23 51

Tạo Project, add reference

Tạo Project, Add reference, Browse đến thư mục chứa các DLL của NHibernate

Page 52: Linq n hibernate net-tier

04/09/23 52

Sử dụng NHibernate

Cài đặtTạo Project, add referenceTạo CSDL và các lớp đối tượngTạo các tập tin cấu hìnhTruy xuất dữ liệu

Page 53: Linq n hibernate net-tier

04/09/23 53

Tạo CSDL và các lớp đối tượng

Tạo CSDL quan hệ

Page 54: Linq n hibernate net-tier

04/09/23 54

Tạo CSDL và các lớp đối tượng

Tạo các lớp đối tượng tương ứng với các bảng của CSDL

Page 55: Linq n hibernate net-tier

04/09/23 55

Sử dụng NHibernate

Cài đặtTạo Project, add referenceTạo CSDL và các lớp đối tượngTạo các tập tin cấu hìnhTruy xuất dữ liệu

Page 56: Linq n hibernate net-tier

04/09/23 56

Tạo các tập tin cấu hìnhTạo tập tin cấu hình hibernate.cfg.xml

Giúp cho NHibernate biết cần phải liên kết với CSDL nào

<?xml version="1.0" ?>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >

<session-factory>

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>

<property name="dialect">NHibernate.JetDriver.JetDialect, NHibernate.JetDriver</property>

<property name="connection.driver_class">NHibernate.JetDriver.JetDriver, NHibernate.JetDriver</property>

<property name="connection.connection_string">Provider=Microsoft.Jet.OLEDB.4.0;Data Source=QuanLyThuVien.mdb</property>

</session-factory>

</hibernate-configuration>`

Page 57: Linq n hibernate net-tier

04/09/23 57

Tạo các tập tin cấu hìnhTạo tập tin cấu hình hibernate.cfg.xml

<property name="connection.connection_string“> Provider=Microsoft.Jet.OLEDB.4.0;Data Source=QuanLyThuVien.mdb</property>

- Chuỗi kết nối đến CSDL

Page 58: Linq n hibernate net-tier

04/09/23 58

Tạo các tập tin cấu hìnhTạo các tập tin ánh xạ *.hbm.xml• Mỗi lớp có một tập tin ánh xạ tương ứng:

[TenLop].hbm.xml

Page 59: Linq n hibernate net-tier

04/09/23 59

Tạo các tập tin cấu hìnhTạo các tập tin ánh xạ *.hbm.xml

<class name="DTO.SachDto,DTO" table="Sach“>

<id name="MSach" column="MSach" type="int“><generator class="increment" />

</id>

<property name="TenSach" column="TenSach" type="String" />

Page 60: Linq n hibernate net-tier

04/09/23 60

Sử dụng NHibernate

Cài đặtTạo Project, add referenceTạo CSDL và các lớp đối tượngTạo các tập tin cấu hìnhTruy xuất dữ liệu

Page 61: Linq n hibernate net-tier

04/09/23 61

Truy xuất dữ liệu

Ánh xạ lớp đối tượng và CSDL

Kết nối với CSDL

Thực hiện các thao tác với CSDL

Đóng kết nối với CSDL

Page 62: Linq n hibernate net-tier

04/09/23 62

Truy xuất dữ liệu

Ánh xạ lớp đối tượng và CSDL

Kết nối với CSDL

Thực hiện các thao tác với CSDL

Đóng kết nối với CSDL

Page 63: Linq n hibernate net-tier

04/09/23 63

Ánh xạ lớp đối tượng và CSDL

Load file cấu hình và file ánh xạ, thực hiện

ánh xạ và trả về đối tượng ISessionFactory.

Page 64: Linq n hibernate net-tier

04/09/23 64

Truy xuất dữ liệu

Ánh xạ lớp đối tượng và CSDL

Kết nối với CSDL

Thực hiện các thao tác với CSDL

Đóng kết nối với CSDL

Page 65: Linq n hibernate net-tier

04/09/23 65

Kết nối CSDL

Đối tượng session giữ kết nối với CSDL và

thực hiện các thao tác đọc ghi trên CSDL

Page 66: Linq n hibernate net-tier

04/09/23 66

Truy xuất dữ liệu

Ánh xạ lớp đối tượng và CSDL

Kết nối với CSDL

Thực hiện các thao tác với CSDL

Đóng kết nối với CSDL

Page 67: Linq n hibernate net-tier

04/09/23 67

Thực hiện các thao tác với CSDL

Page 68: Linq n hibernate net-tier

04/09/23 68

Thực hiện các thao tác với CSDL – select

IList lst = session.Find(“from DTO.DocGiaDto”);

// Đọc tất cả các record trong bảng DocGia

DocGiaDto dg = session.Load<DocGiaDto>(maDG);

dg.HoTen = “NMN”;

// Lấy ra một record từ bảng DocGia

Page 69: Linq n hibernate net-tier

04/09/23 69

Thực hiện các thao tác với CSDL – insert

DocGiaDto dg = new DocGiaDto();

dg.HoTen = “NMN”;

dg.GioiTinh = 1;

// …

session.Save(dg);

// Lưu đọc giả dg vào bảng DocGia

Page 70: Linq n hibernate net-tier

04/09/23 70

Thực hiện các thao tác với CSDL – delete

DocGiaDto dg = session.Load<DocGiaDto>(maDg);

session.Delete(dg);

// Xóa đọc giả “dg” khỏi bảng DocGia

Page 71: Linq n hibernate net-tier

04/09/23 71

Thực hiện các thao tác với CSDL – update

DocGiaDto dg = session.Load<DocGiaDto>(maDg);

dg.HoTen = “Cập nhật”;

session.Update(dg);

// Cập nhật thông tin đọc giả “dg”

Page 72: Linq n hibernate net-tier

04/09/23 72

Thực hiện các thao tác với CSDL – SqlQuery

String strSql = “select s.TenSach, ls.TenLoaiSach, s.TacGia from Sach s inner join LoaiSach ls on s.LoaiSach = ls.MLoaiSach where s.TrangThai=true”

/* Lấy về sách (Tên sách, tên loại sách, tác giả) chưa được mượn */

ISQLQuery query = session.CreateSQLQuery(strSql);

query.AddScalar(“TenSach",NHibernateUtil.String);

query.AddScalar(“TenLoaiSach",NHibernateUtil.String);

query.AddScalar(“TacGia",NHibernateUtil.String);

IList lst = query.List();

/* lst chứa danh sách những quyển sách tìm được */

Page 73: Linq n hibernate net-tier

04/09/23 73

Thực hiện các thao tác với CSDL – SqlQuery

String strSql = “select * from DocGia where HoTen = ?”

/* Tìm độc giả theo tên */

ISQLQuery query = session.CreateSQLQuery(strSql);

query.SetString(“NMN”); // Set Parameters

query. AddEntity(typeof(DocGiaDto));

IList lst = query.List();

/* lst chứa danh sách độc giả có tên “NMN”*/

Page 74: Linq n hibernate net-tier

04/09/23 74

Thực hiện các thao tác với CSDL

transaction.Commit();

Cập nhật các thay đổi xuống CSDL

transaction.Rollback();

Hủy bỏ các thay đổi

Page 75: Linq n hibernate net-tier

04/09/23 75

Truy xuất dữ liệu thông qua NHibernate

Ánh xạ lớp đối tượng và CSDL

Kết nối với CSDL

Thực hiện các thao tác với CSDL

Đóng kết nối với CSDL

Page 76: Linq n hibernate net-tier

04/09/23 76

Đóng kết nối với CSDL

Page 77: Linq n hibernate net-tier

04/09/23 77

Giới thiệu

Sử dụng NHibernate

Ưu, khuyết điểm4

1

2

Nội dung chính

Page 78: Linq n hibernate net-tier

04/09/23 78

Ưu, khuyết điểm

Ưu điểm• Hỗ trợ nhiều loại cơ sở dữ liệu (multi – database

support)• Giảm gánh nặng viết mã nguồn giao tiếp với cơ

sở dữ liệu• Cung cấp nhiều phương thức truy xuất CSDL

Page 79: Linq n hibernate net-tier

04/09/23 79

Ưu, khuyết điểm

Khuyết điểm:• Người dùng NHibernate phải học cách viết tập tin

mapping.• Việc truy xuất CSDL đôi khi không tối ưu, dẫn đến tốc độ

thực thi chậm, ảnh hưởng performance của phần mềm.• Khó debug phần truy xuất cơ sở dữ liệu• Gặp không ít khó khăn trong khi cấu hình

Page 80: Linq n hibernate net-tier

04/09/23 80

Tham khảo

http://www.hibernate.com

http://en.wikipedia.org/wiki/NHibernate

http://www.codeproject.com/KB/architecture/

NHibernateArchitecture.aspx

http://www.codeproject.com/KB/database/

Nhibernate_Made_Simple.aspx

Page 81: Linq n hibernate net-tier

04/09/23 81

NET – TIERNhóm D4 + D6

GVLT: Th.S Lâm Quang Vũ

GVHD: Nguyễn Huy Khánh

Page 82: Linq n hibernate net-tier

04/09/23 82

Thành viên nhóm• Nhóm D4: Nguyễn Hải Đăng - 0512438 Đào Duy Minh Đăng – 0512439 Phan Xuân Đình – 0512444 Nguyễn Lê Thanh Thảo – 0612418 Huỳnh Thanh Tuyền – 0612494

• Nhóm D6: Nguyễn Thành Trung – 0612468 Huỳnh Minh Trác – 0612482 Nguyễn Hữu Trí – 0612485 Vũ Ngọc Yến Vũ – 0612584

Page 83: Linq n hibernate net-tier

04/09/23 83

Giới thiệu công cụ CodeSmith

Giới thiệu netTiers

Demo netTiers3

1

2

Nội dung chính

Page 84: Linq n hibernate net-tier

04/09/23 84

CÔNG CỤ CODESMITH

Giới thiệu Công cụ phát sinh mã dựa trên template

có sẵn. Hỗ trợ ngôn ngữ: C#, VB.NET, Java, T-

SQL, FORTRAN. Cú pháp viết giống ASP.NET.

Page 85: Linq n hibernate net-tier

04/09/23 85

CÔNG CỤ CODESMITH

Template là gì? Là một khung mẫu do người dùng định

nghĩa theo ngôn ngữ của CodeSmith.

Page 86: Linq n hibernate net-tier

04/09/23 86

CÔNG CỤ CODESMITH STUDIO

Công cụ CodeSmith Studio Giúp soạn thảo, biên dịch và thực thi một

template. Hỗ trợ soạn thảo nhanh chóng giống như

Visual Studio.Net.

Page 87: Linq n hibernate net-tier

04/09/23 87

Menu bar

Tool bar

Cửa sổ chính

Templete Explorer

Tab Templetet

Tab Output

Page 88: Linq n hibernate net-tier

04/09/23 88

CÔNG CỤ CODESMITH EXPLORER

Công cụ CodeSmith Explorer Giúp phát sinh mã từ một template. Tổ chức, quản lý các thư mục chứa file

template (cst).

Page 89: Linq n hibernate net-tier

04/09/23 89

CÔNG CỤ CODESMITH EXPLORER

Page 90: Linq n hibernate net-tier

04/09/23 90

NETTIERSGiới thiệu Là một tập các template (nguồn mở)

dùng để phát sinh mã. Giúp đơn giản hóa việc tạo mới một ứng dụng chỉ trong vài phút.

Dựa trên công cụ CodeSmith để phát sinh ra mã.

Cung cấp cho người phát triển 1 framework đầy đủ để phát triển ứng dụng.

Page 91: Linq n hibernate net-tier

04/09/23 91

NETTIERS

Kiến trúc .netTiers

Page 92: Linq n hibernate net-tier

04/09/23 92

Demo

Bước 1: Khởi động CODESMITH EXPLORER, mở template

nettiers.

Bước 2: Nhập các thông tin của dự án.

Bước 3: genarate code.

Page 93: Linq n hibernate net-tier

04/09/23 93Company Name

Page 94: Linq n hibernate net-tier

04/09/23 94

Page 95: Linq n hibernate net-tier

04/09/23 95

Demo

Add >> New item >> Application Configuration File

Copy nội dung từ file: NetTiers\*.UnitTests\ *.UnitTests.dll.config

Bước 4: Thêm project mới vào cho dự án, cấu hình cho project:

Page 96: Linq n hibernate net-tier

04/09/23 96

Bước 5: Thiết kế giao diện

Page 97: Linq n hibernate net-tier

04/09/23 97

AccountService accountsService = new AccountsService();

//GetAll()

TList<Accounts> accountList = accountsService.GetAll();

//GetPagedl()

TList<Accounts> accountList = accountsService.GetPaged("IsActive = 1 AND AccountName LIKE 'smi%'");

//GetByFk()

TList<Accounts> accountList = accountsService.GetByCustomerId(25);

………………………………………………………………….

AccountService accountsService = new AccountsService();

//GetAll()

TList<Accounts> accountList = accountsService.GetAll();

//GetPagedl()

TList<Accounts> accountList = accountsService.GetPaged("IsActive = 1 AND AccountName LIKE 'smi%'");

//GetByFk()

TList<Accounts> accountList = accountsService.GetByCustomerId(25);

………………………………………………………………….

Bước 6: Viết code select, insert, delete, update dữ liệu

Page 98: Linq n hibernate net-tier

04/09/23 98

Page 99: Linq n hibernate net-tier

04/09/23 99

Page 100: Linq n hibernate net-tier

04/09/23 100

//Insert()

Account accountEntity = new Account();

accountEntity.AccountName = "MyAccountName";

accountEntity.CreatedDate = DateTime.Now;

accountsService.Insert(accountEntity);

//Insert()

Account accountEntity = new Account();

accountEntity.AccountName = "MyAccountName";

accountEntity.CreatedDate = DateTime.Now;

accountsService.Insert(accountEntity);

Page 101: Linq n hibernate net-tier

04/09/23 101

//Delete()

bool result = accountsService.Delete(23);

//Delete()

bool result = accountsService.Delete(23);

DangKyService dkSer = new DangKyService();

dkSer.Delete(m.Isbn, m.MaDocgia);

DangKyService dkSer = new DangKyService();

dkSer.Delete(m.Isbn, m.MaDocgia);

Page 102: Linq n hibernate net-tier

04/09/23 102

//Update()

accountEntity.AccountName = "MyAccountName 2"; accountsService.Update(accountEntity);

//Update()

accountEntity.AccountName = "MyAccountName 2"; accountsService.Update(accountEntity);

CuonSachService csSer = new CuonSachService();

CuonSach cs = csSer.GetByIsbnMaCuonSach(m.Isbn, m.MaCuonsach);

cs.TinhTrang = "Y";

csSer.Update(cs);

CuonSachService csSer = new CuonSachService();

CuonSach cs = csSer.GetByIsbnMaCuonSach(m.Isbn, m.MaCuonsach);

cs.TinhTrang = "Y";

csSer.Update(cs);

Page 103: Linq n hibernate net-tier

04/09/23 103

Vấn đề select từ nhiều bảng dữ liệu

Danh sách các độc giả đang đăng ký mượn sách, hiển thị các thông tin: họ tên độc giả, tựa sách, ngày giờ đăng ký

Page 104: Linq n hibernate net-tier

04/09/23 104

Page 105: Linq n hibernate net-tier

04/09/23 105

Tham Khảo

http://patternshare.org/default.aspx/Home.PP.Singleton

http://www.dofactory.com/Patterns/PatternDecorator.aspx

http://www.NetTiers.com

http://docs.nettiers.com/

http://msdn2.microsoft.com/en-us/library/aa480458.aspx

Page 106: Linq n hibernate net-tier

04/09/23 106

So sánh• Giống nhau:

Đều có cơ chế ORM

• Khác nhau:

LINQ không phải là 1 ORM tool hoàn chỉnh

Nhibernate là 1 ORM tool.

Net-Tier là 1 ORM tool.

Page 107: Linq n hibernate net-tier

04/09/23 107

So sánh• Khác nhau:

LINQ chủ yếu là ngôn ngữ truy vấn hỗ trợ intellisense, trình biên dịch sẽ check syntax của câu truy vấn.

Nhibernate có ngôn ngữ truy vấn khá giới hạn, không có intellisense.

Net-Tier không có ngôn ngữ truy vấn dữ liệu mà truy vấn được phát sinh tự động.

Page 108: Linq n hibernate net-tier

04/09/23 108

So sánh• Khác nhau:

LINQ chủ yếu dùng cho Microsoft SQL Server.

Nhibernate có thể được dùng với hầu hết bất kỳ hệ quản trị CSDL nào miễn là cung cấp DB provider.

Net-Tier chủ yếu dùng cho Microsoft SQL Server, nhưng vẫn có thể thao tác với các DBMS khác thông qua loại Generic.

Page 109: Linq n hibernate net-tier

04/09/23 109

So sánh• Khác nhau:

LINQ Closed source.

Nhibernate Open source.

Net-Tier Open source.

Page 110: Linq n hibernate net-tier

04/09/23 110