Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)
Số trang: 18
Loại file: pdf
Dung lượng: 1.07 MB
Lượt xem: 15
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7) Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL là một bộ khung (framework) có sẵn cho O/RM (object relational mapping) trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa các CSDL quan hệ dùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó. Dưới đây là 6 phần đầu tiên của loạt bài này: -Sử dụng LINQ to SQL (phần 1)...
Nội dung trích xuất từ tài liệu:
Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL làmột bộ khung (framework) có sẵn cho O/RM (object relational mapping)trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa cá c CSDL quan hệdùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL,cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.Dưới đây là 6 phần đầu tiên của loạt bài này:-Sử dụng LINQ to SQL (phần 1)-Định nghĩa các lớp mô hình dữ liệu (phần 2)-Truy vấn Cơ sở dữ liệu (phần 3)-Cập nhật cơ sở dữ liệu (LINQ to SQL phần 4)-Sử dụng asp:LinqDataSource (phần 5)-Lấy dữ liệu dùng Stored Procedure (LINQ to SQL phần 6)-Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)-Thực thi các biểu thức SQL tùy biến (LINQ to SQL phần 8)Trong phần 6 tôi đã nói tới cách chúng ta có thể dùng các Stored Procedure(SPROC) và các hàm do người dùng định nghĩa (UDF) để truy vấn và lấy dữliệu về dùng mô hình dữ liệu LINQ to SQL. Trong viết này, tôi sẽ nói vềcách dùng các thủ tục này để cập nhật, thêm hoặc xóa dữ liệu.Để có thể minh họa cho điều này, chúng ta hãy bắt đầu từ đầu và xây dựngmột lớp truy xuất dữ liệu cho CSDL mẫu Northwind:Bước 1: Tạo lớp truy xuất dữ liệu (chưa dùng đến các thủ tục)Trong phần 2, tôi có nói về cách dùng LINQ to SQL designer có trong VS2008 để tạo một mô hình lớp giống như dưới đây:Thêm các quy tắc kiểm tra dữ liệu vào các lớp mô hình dữ liệuSau khi định nghĩa các lớp trong mô hình dữ liệu và các quan hệ giữa chúng,chúng ta sẽ tiếp tục thêm vào các quy tắc kiểm tra tính hợp lệ của dữ liệu.Chúng ta có thể làm điều này bằng cách thêm các lớp partial vào trong dự ánvà thêm các quy tắc kiểm tra vào các lớp mô hình dữ liệu (tôi đã nói đến vấnđề này khá kỹ trong bài 4).Ví dụ, bạn có thể thêm một quy tắc để đảm bảo rằng số điện thoại của kháchhàng được nhập đúng định dạng, và chúng ta không cho phép thêm một đơnhàng (Order) nếu trường OrderDate lớn hơn RequiredDate. Một khi đã đượcđịnh nghĩa như dưới đây, các phương thức kiểm tra sẽ tự động được thực thibất kỳ lúc nào chúng ta cập nhật lại các đối tượng trong hệ thống.Thêm phương thức GetCustomer() vào lớp DataContextHiện tại chúng ta đã tạo các lớp mô hình dữ liệu, và đã áp dụng các phươngthức kiểm tra trên chúng, chúng ta có thể truy vấn và tương tác với dữ liệu.Chúng ta có thể làm được điều này bằng cách viết các câu lệnh LINQ vớicác lớp mô hình dữ liệu để truy vấn và cập nhật CSDL (tôi đã có nói về điềunày trong bài 3). Thêm nữa tôi cũng có thể ánh xạ các SPROC vào lớpDataContext và dùng chúng để đưa dữ liệu vào CSDL (bài 6).Khi xây dựng các lớp dữ liệu LINQ to SQL, bạn sẽ thường có nhu cầu đưacác câu lệnh LINQ thường dùng vào các phương thức tiện ích trong lớpDataContext. Bạn có thể làm được điều này bằng cách thêm một lớp partialváo project. Ví dụ, banks có thể thêm một phương thức có tên“GetCustomer()” cho phép chúng ta tìm kiếm và lấy về các đối tượngCustomer từ CSDL dựa trên día trị của CustomerID:Bước 2: Dùng lớp truy cập dữ liệu (chưa sử dụng SPROC)Hiện tại chúng ta đã có một lớp truy cập dữ liệu (data access layer) để biểudiễn mô hinh dữ liệu, tích hợp các quy tắc và cho phép chúng ta có thể thựchiện truy vấn, cập nhật, thêm và xóa dữ liệu.Hãy xem một trường hợp đơn giản là khi chúng ta lấy về một đối tượngkhách hàng đã có, cập nhật lại giá trị của trường ContactName vàPhoneNumber, sau đó tạo mới một đối tượng Order và kết hợp chúng vớinhau. CHúng ta có thể viết đoạn lệnh dưới đây để làm tất cả điều này trongmột transaction. LINQ to SQL sẽ đảm bảo các thủ tục kiểm tra sẽ được thựcthi và cho phép trước khi dữ liệu có thể được cập nhật một cách thực sự:LINQ to SQL theo dõi các thay đổi mà chúng ta đã tạo trên các đối tượngđược lấy về từ DataContext, và cũng theo dõi cả cá c đối tượng mà chúng tathêm vào. Khi gọi SubmitChanges(), LINQ to SQL sẽ kiểm tra xem dữ liệucó hợp lệ hay không, và có đúng với các quy tắc logic hay không, nếu đúngthì các câu SQL động sẽ được sinh ra để cập nhật bản ghi Customer ở trên,và thêm một bản ghi mới vào bảng Orders.Chờ một giây – Tôi nghĩ bài viết này định nói về việc dùng SPROC cơ mà???Nếu vẫn đang đọc bài này, bạn có lẽ sẽ cảm thấy khó hiểu vì không thấy nóigì về SPROC. Tại sao tôi hướng dẫn bạn cách viết lệnh để làm việc với cácđối tượng trong mô hình dữ liệu, rồi cho phép các câu lệnh SQL động đượcthực thi? Sao tôi vẫn chưa cho các bạn thấy cách để gọi các SPROC để thựchiện việc chèm/sửa/xóa dữ liệu ?Lý do là vì mô hình lập trình của LINQ to SQL để làm việc với các đốitượng mô hình dữ liệu bằng SPROC cũng hoàn toàn tương tự với việc sửdụng các câu SQL động. Cách chúng ta thêm các quy tắc kiểm tra cũng hoàntoàn tương tự (do vậy các quy tắc mà ta đã thêm vào trước đây sẽ vẫn cóhiệu quả khi chúng ta chuyển sang dùng SPROC). Đoạn lệnh ở trên để lấyvề một Customer, rồi cậ ...
Nội dung trích xuất từ tài liệu:
Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL làmột bộ khung (framework) có sẵn cho O/RM (object relational mapping)trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa cá c CSDL quan hệdùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL,cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.Dưới đây là 6 phần đầu tiên của loạt bài này:-Sử dụng LINQ to SQL (phần 1)-Định nghĩa các lớp mô hình dữ liệu (phần 2)-Truy vấn Cơ sở dữ liệu (phần 3)-Cập nhật cơ sở dữ liệu (LINQ to SQL phần 4)-Sử dụng asp:LinqDataSource (phần 5)-Lấy dữ liệu dùng Stored Procedure (LINQ to SQL phần 6)-Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)-Thực thi các biểu thức SQL tùy biến (LINQ to SQL phần 8)Trong phần 6 tôi đã nói tới cách chúng ta có thể dùng các Stored Procedure(SPROC) và các hàm do người dùng định nghĩa (UDF) để truy vấn và lấy dữliệu về dùng mô hình dữ liệu LINQ to SQL. Trong viết này, tôi sẽ nói vềcách dùng các thủ tục này để cập nhật, thêm hoặc xóa dữ liệu.Để có thể minh họa cho điều này, chúng ta hãy bắt đầu từ đầu và xây dựngmột lớp truy xuất dữ liệu cho CSDL mẫu Northwind:Bước 1: Tạo lớp truy xuất dữ liệu (chưa dùng đến các thủ tục)Trong phần 2, tôi có nói về cách dùng LINQ to SQL designer có trong VS2008 để tạo một mô hình lớp giống như dưới đây:Thêm các quy tắc kiểm tra dữ liệu vào các lớp mô hình dữ liệuSau khi định nghĩa các lớp trong mô hình dữ liệu và các quan hệ giữa chúng,chúng ta sẽ tiếp tục thêm vào các quy tắc kiểm tra tính hợp lệ của dữ liệu.Chúng ta có thể làm điều này bằng cách thêm các lớp partial vào trong dự ánvà thêm các quy tắc kiểm tra vào các lớp mô hình dữ liệu (tôi đã nói đến vấnđề này khá kỹ trong bài 4).Ví dụ, bạn có thể thêm một quy tắc để đảm bảo rằng số điện thoại của kháchhàng được nhập đúng định dạng, và chúng ta không cho phép thêm một đơnhàng (Order) nếu trường OrderDate lớn hơn RequiredDate. Một khi đã đượcđịnh nghĩa như dưới đây, các phương thức kiểm tra sẽ tự động được thực thibất kỳ lúc nào chúng ta cập nhật lại các đối tượng trong hệ thống.Thêm phương thức GetCustomer() vào lớp DataContextHiện tại chúng ta đã tạo các lớp mô hình dữ liệu, và đã áp dụng các phươngthức kiểm tra trên chúng, chúng ta có thể truy vấn và tương tác với dữ liệu.Chúng ta có thể làm được điều này bằng cách viết các câu lệnh LINQ vớicác lớp mô hình dữ liệu để truy vấn và cập nhật CSDL (tôi đã có nói về điềunày trong bài 3). Thêm nữa tôi cũng có thể ánh xạ các SPROC vào lớpDataContext và dùng chúng để đưa dữ liệu vào CSDL (bài 6).Khi xây dựng các lớp dữ liệu LINQ to SQL, bạn sẽ thường có nhu cầu đưacác câu lệnh LINQ thường dùng vào các phương thức tiện ích trong lớpDataContext. Bạn có thể làm được điều này bằng cách thêm một lớp partialváo project. Ví dụ, banks có thể thêm một phương thức có tên“GetCustomer()” cho phép chúng ta tìm kiếm và lấy về các đối tượngCustomer từ CSDL dựa trên día trị của CustomerID:Bước 2: Dùng lớp truy cập dữ liệu (chưa sử dụng SPROC)Hiện tại chúng ta đã có một lớp truy cập dữ liệu (data access layer) để biểudiễn mô hinh dữ liệu, tích hợp các quy tắc và cho phép chúng ta có thể thựchiện truy vấn, cập nhật, thêm và xóa dữ liệu.Hãy xem một trường hợp đơn giản là khi chúng ta lấy về một đối tượngkhách hàng đã có, cập nhật lại giá trị của trường ContactName vàPhoneNumber, sau đó tạo mới một đối tượng Order và kết hợp chúng vớinhau. CHúng ta có thể viết đoạn lệnh dưới đây để làm tất cả điều này trongmột transaction. LINQ to SQL sẽ đảm bảo các thủ tục kiểm tra sẽ được thựcthi và cho phép trước khi dữ liệu có thể được cập nhật một cách thực sự:LINQ to SQL theo dõi các thay đổi mà chúng ta đã tạo trên các đối tượngđược lấy về từ DataContext, và cũng theo dõi cả cá c đối tượng mà chúng tathêm vào. Khi gọi SubmitChanges(), LINQ to SQL sẽ kiểm tra xem dữ liệucó hợp lệ hay không, và có đúng với các quy tắc logic hay không, nếu đúngthì các câu SQL động sẽ được sinh ra để cập nhật bản ghi Customer ở trên,và thêm một bản ghi mới vào bảng Orders.Chờ một giây – Tôi nghĩ bài viết này định nói về việc dùng SPROC cơ mà???Nếu vẫn đang đọc bài này, bạn có lẽ sẽ cảm thấy khó hiểu vì không thấy nóigì về SPROC. Tại sao tôi hướng dẫn bạn cách viết lệnh để làm việc với cácđối tượng trong mô hình dữ liệu, rồi cho phép các câu lệnh SQL động đượcthực thi? Sao tôi vẫn chưa cho các bạn thấy cách để gọi các SPROC để thựchiện việc chèm/sửa/xóa dữ liệu ?Lý do là vì mô hình lập trình của LINQ to SQL để làm việc với các đốitượng mô hình dữ liệu bằng SPROC cũng hoàn toàn tương tự với việc sửdụng các câu SQL động. Cách chúng ta thêm các quy tắc kiểm tra cũng hoàntoàn tương tự (do vậy các quy tắc mà ta đã thêm vào trước đây sẽ vẫn cóhiệu quả khi chúng ta chuyển sang dùng SPROC). Đoạn lệnh ở trên để lấyvề một Customer, rồi cậ ...
Tìm kiếm theo từ khóa liên quan:
Stored Procedure lưu trữ dữ liệu hệ thống dữ liệu dữ liệu máy tính phương thức xử lýTài liệu có liên quan:
-
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 339 1 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 307 2 0 -
8 trang 298 0 0
-
Tiểu Luận Chương Trình Quản Lí Học Phí Trường THPT
18 trang 103 0 0 -
Giáo trình Điện toán đám mây (Xuất bản lần thứ hai): Phần 1
64 trang 75 0 0 -
Đồ án tốt nghiệp ngành Công nghệ thông tin: Áp dụng các kỹ thuật trong big data vào lưu trữ dữ liệu
96 trang 73 1 0 -
Cách sao lưu và phục hồi dữ liệu bằng Norton Ghost
8 trang 68 0 0 -
7 trang 62 0 0
-
Bài 4 Truy vấn nâng cao (Thực hành)
10 trang 57 0 0 -
57 trang 53 0 0