2009
LINQ to SQL Tutorial
From ScottGu blog
Đào Hải Nam
LINQ to SQL Tutorial
2
LINQ to SQL Tutorial
Được dch t blog ScottGu - http://weblogs.asp.net/scottgu/default.aspx
Người dch: Đào Hải Nam http://www.daohainam.com
LINQ to SQL Tutorial
3
Mc lc
Bài 1: S dng LINQ to SQL .............................................................................................................................. 6
1. LINQ to SQL là gì? .................................................................................................................................. 6
2. Mô hình hóa CSDL dùng LINQ to SQL: ................................................................................................. 6
3. Tìm hiu lp DataContext ........................................................................................................................ 7
4. Các ví d LINQ to SQL ........................................................................................................................... 8
a. Ly các Product t CSDL .................................................................................................................... 8
b. Cp nht mt sn phm trong CSDL ................................................................................................... 9
c. Chèn thêm mt phân loi mi và hai sn phm vào CSDL ................................................................. 9
d. Xóa các sn phm .............................................................................................................................. 10
e. Gi mt th tc .................................................................................................................................. 11
f. Ly các sn phm và phân trang ........................................................................................................ 12
5. Tng kết ................................................................................................................................................. 12
Bài 2: Định nghĩa các lp mô hình d liu ........................................................................................................ 13
1. To ra mt mô hình d liu LINQ to SQL ............................................................................................. 14
2. Các lp thc th ..................................................................................................................................... 15
3. To các lp thc th t CSDL ............................................................................................................... 15
4. Cách đặt tên và ng pháp s nhiu......................................................................................................... 17
5. Quan h gia các thc th ...................................................................................................................... 18
6. Delay/Lazy Loading ............................................................................................................................... 19
7. Dùng các Stored Procedure .................................................................................................................... 19
Dùng SPROCS để cp nht/xóa,thêm d liu ............................................................................................ 21
8. Tng kết ................................................................................................................................................. 22
Bài 3: Truy vn Cơ s d liu ............................................................................................................................ 23
1. Mô hình hóa CSDL Northwind dùng LINQ to SQL.............................................................................. 23
2. Ly các sn phm ................................................................................................................................... 23
3. Trc quan hóa các câu truy vn LINQ to SQL trong trình g li .......................................................... 25
4. Gn ni các câu truy vn LINQ to SQL vào các control LINQ to SQL ................................................ 26
5. Data Sharping ......................................................................................................................................... 27
6. Phân trang kết qu truy vn.................................................................................................................... 32
7. Tng kết ................................................................................................................................................. 34
Bài 4: Cp nht cơ s d liu ............................................................................................................................. 35
1. CSDL Northwind đưc mô hình hóa dùng LINQ to SQL ..................................................................... 35
Change Tracking và DataContext.SubmitChanges() ................................................................................. 36
2. Các ví d Insert Delete ...................................................................................................................... 37
LINQ to SQL Tutorial
4
a. Thêm mt sn phm ........................................................................................................................... 38
b. Xóa các sn phm .............................................................................................................................. 38
3. Cp nht thông qua các quan h ............................................................................................................. 38
4. Transactions ........................................................................................................................................... 40
5. Kim tra d liu và Business Logic ....................................................................................................... 41
6. H tr kim tra các giá tr thuc tính da trên schema ca CSDL ........................................................ 41
7. H tr tùy biến vic kim tra giá tr các thuc tính ................................................................................ 41
8. H tr tùy biến vic kim tra tính hp l ca thc th ........................................................................... 42
9. Tùy biến các phương thc kim tra vic thêm/xóa/sa d liu ............................................................. 43
10. Nâng cao: Xem danh sách thay đổi cho Transaction ......................................................................... 44
11. X lý các thay đổi đồng thi vi Optimistic Concurrency: ............................................................... 45
12. Dùng SPROCs hoc tùy biến logic các câu SQL: .............................................................................. 45
Bài 5: S dng asp:LinqDataSource .................................................................................................................. 47
1. ng dng mu mà chúng ta s xây dng: .............................................................................................. 47
2. <asp:LinqDataSource> là gì và nó giúp gì cho chúng ta? ..................................................................... 48
Bước 1: Định nghĩa mô hình dữ liu .......................................................................................................... 49
Bước 2: To danh sách sn phm .............................................................................................................. 50
Bước 3: B các ct không cn thiết ........................................................................................................... 54
Bước 4: Lc danh sách sn phm .............................................................................................................. 57
Bước 5: Thêm các quy tc kim tra logic .................................................................................................. 60
3. Tng kết ................................................................................................................................................. 63
Bài 6: Ly d liu dùng Stored Procedure ......................................................................................................... 65
1. Dùng SPROC hay không SPROC? Đó là một vấn đề…. ..................................................................... 65
2. Các bước ánh x và gi SPROC dùng LINQ to SQL ............................................................................ 66
3. Cách ánh x mt SPROC vào mt DataContext ca LINQ ................................................................... 67
4. Cách gi SPROC mới được to ............................................................................................................. 68
5. Ánh x kiu tr v ca phương thc SPROC vào mt lp trong mô hình d liu ................................ 69
6. X lý các tham s th tc dng OUTPUT ............................................................................................. 72
7. X lý các th tc tr v nhiu kiu kết qu khác nhau........................................................................... 73
H trc hàm do người dùng t định nghĩa (UDF) ................................................................................. 75
8. Tng kết ................................................................................................................................................. 77
Bài 7: Cp nht d liu dùng Stored Procedure ................................................................................................. 78
9. Bước 1: To lp truy xut d liu (chưa dùng đến các th tc) ............................................................ 78
Thêm các quy tc kim tra d liu vào các lp mô hình d liu ............................................................... 78
Thêm phương thc GetCustomer() vào lp DataContext ......................................................................... 80
LINQ to SQL Tutorial
5
10. Bước 2: Dùng lp truy cp d liu (chưa s dng SPROC) .............................................................. 81
11. Ch mt giây - Tôi nghĩ bài viết này định nói v vic dùng SPROC cơ mà ??? ............................... 82
12. Cách s dụng SPROC để thc hin Insert/Update/Delete ................................................................. 83
13. Bước 3: Thêm mt Order bng cách dùng SPROC ........................................................................... 83
14. Bước 4: Thc hin cp nht dùng SPROC ........................................................................................ 87
15. Bước 5: Dùng lp DAL ln na ......................................................................................................... 89
16. Mt s ưu đim ca vic dùng SPROC ............................................................................................. 89
Dùng các tham s dng output: .................................................................................................................. 89
S thế nào nếu mt SPROC phát ra mt li? ............................................................................................. 90
Tôi có th viết code thay vì dung ORM designer để gi SPROC? ............................................................ 90
17. Tng kết ............................................................................................................................................. 90
Bài 8: Thc thi các biu thc SQL tùy biến ....................................................................................................... 91
1. Dùng các câu truy vn SQL tùy biến vi LINQ to SQL ........................................................................ 93
2. Dùng ExecuteQuery ............................................................................................................................... 93
3. Tùy biến các biu thc SQL và theo vết (tracking) các thao tác cp nht: ............................................ 94
4. Tùy biến các biu thc SQL vi các lp ca bn .................................................................................. 95
5. Tùy biến các câu SQL cho Inserts/Updates/Deletes .............................................................................. 95
6. Tng kết ................................................................................................................................................. 96
Bài 9: Dùng biu thc LINQ tùy biến vi <asp:LinqDatasource> .................................................................... 97
1. Tóm tt: dùng <asp:LinqDataSource> vi mt mệnh đề where được khai báo .................................... 97
2. Dùng các s kin Selecting vi <asp:LinqDataSource> ........................................................................ 98
3. Thc hin các phép chiếu khi truy vn vi s kin Selecting .............................................................. 101
4. Tng kết ............................................................................................................................................... 103