Tải bản đầy đủ (.pptx) (28 trang)

Tiểu luận môn lập trình cơ sở dữ liệu GIỚI THIỆU VỀ LINQ to SQL căn bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (461.46 KB, 28 trang )

LINQ to SQL
căn bản
Võ Minh Thiện - Mssv: 09520665
Đinh Đức Thành - Mssv: 09520646
Để giảm gánh nặng thao tác trên nhiều ngôn ngữ khác
nhau và cải thiện năng suất lập trình, Microsoft đã phát
triển giải pháp tích hợp dữ liệu cho .NET Framework có
tên gọi là LINQ (Language Integrated Query).
TÌM HIỂU CÔNG NGHỆ
LINQ
LINQ là thư viện mở rộng cho các ngôn ngữ lập trình C# và
Visual Basic.NET (có thể mở rộng cho các ngôn ngữ khác) cung
cấp khả năng truy vấn trực tiếp dữ liệu Object, CSDL Quan Hệ và
XML.
LINQ là một tập hợp các thành phần mở rộng cho phép viết
các câu truy vấn dữ liệu ngay trong một ngôn ngữ lập trình, như
C# hoặc VB.NET.
Định nghĩa linq:
Ưu điểm:
SQL có cú pháp rất khác với những ngôn ngữ lập trình phổ dụng như C#
và VB.NET.
=> Do vậy bạn phải nhọc công “hàn gắn” hai thực thể khác biệt này với
nhau trong mỗi dự án phần mềm.
LINQ ra đời để giảm gánh nặng thao tác “hàn gắn” trên nhiều ngôn ngữ
khác nhau.
Thứ I: Giảm gánh nặng thao tác
ThứII: Hỗ trợ nhiều kiễu dữ liệu:
Một vấn đề khác với SQL là nó chỉ dùng để truy vấn dữ liệu trong các CSDL
dạng quan hệ. Nếu muốn truy cập dữ liệu XML hay dạng khác (như trang
HTML, email…), bạn lại phải sử dụng cú pháp truy vấn khác (XPath/XQuery).
Cách giải quyết vấn đề tốt nhất hiện nay là LINQ


ThứIII: Thống nhất về cú pháp
Cung cấp 1 cú pháp chung cho truy vấn dữ liệu từ nhiều
nguồn khác nhau.
Với LINQ nó sẽ cung cấp cách duy nhất để truy cập dữ liệu
từ bất kể nguồn dữ liệu nào với cú pháp giống nhau.

Ngoài ra, cung cấp cách viết dễ dàng cho việc đọc và
phân tích. Trường hợp này sẽ được thể hiện rõ ràng khi
chúng ta cần lọc những dữ liệu với nhiều điều kiện phân cấp
khác nhau thì LINQ sẽ thể hiện rõ tính ưu việt của mình.
LINQ cũng cung cấp những bộ lọc, sắp xếp thứ tự, nhóm
dữ liệu với khối lượng code tối thiểu nhưng vẫn bảo đảm
tính rõ ràng
LINQ có từ bản .NET 3.5, vậy nên tối thiểu chương
trình của bạn phải chạy trên nền tảng này.
Visual Studio 2008, hoặc các phiên bản Express
của nó là các bộ công cụ phát triển tiêu biểu cho
ứng dụng dùng LINQ.
Yêu cầu để sử dụng LINQ:
Nhắc lại : ADO.NET là công nghệ cho phép các ứng
dụng có thể kết nối và làm việc với các loại CSDL khác
nhau (truy vấn, cập nhật, thêm, xóa, gọi thủ tục…).
Bản thân LINQ không phải là một công nghệ được tạo ra để
thay thế ADO.NET, bạn có thể làm việc với LINQ mà không
dính gì đến CSDL.
ADO.net và LINQ
LINQ to SQL, là một phần mở rộng của LINQ, cho phép
bạn có thể làm việc được với CSDL SQL Server, trong trường
hợp này thì khi viết bạn có thể bỏ qua các câu lệnh ADO.NET
mà chỉ quan tâm tới cú pháp mà LINQ cung cấp.

Nhớ rằng dù bạn không hề dùng đến ADO.NET khi viết
chương trình sử dụng LINQ to SQL, nhưng đằng sau nó,
ADO.NET vẫn được dùng để thực hiện kết nối, gửi các câu
lệnh, các lời gọi thủ tục…
Một điểm cần chú ý:
Tất cả các biểu thức LINQ làm việc theo ba thao tác :
1. Có được các dữ liệu nguồn.
2. Tạo các truy vấn.
3. Thực hiện các truy vấn.
Truy vấn trong LINQ.
Một câu truy vấn là một biêu thức gọi ra dữ liệu từ dữ
liệu nguồn.
Câu truy vấn thường nói rõ trong ngôn ngữ truy vấn dữ
liệu được thiết kế cho mục dích riêng.
Ba phần của một biểu thức LINQ.
Ba phần của một biểu thức LINQ.

Chức năng của mô hình ORM
1. Tạo ra một mô hình đối tượng trong một ứng dụng để
ánh xạ các đối tượng trong một cơ sở dữ liệu.
2. Tạo ra một mảng kiểu rõ ràng DataContext được sử
dụng để gửi và nhận dữ liệu giữa các lớp thực thể và cơ
sở dữ liệu.
3. Cung cấp tính năng cho việc ánh xạ các thủ tục lưu trữ
và các hàm để thực hiện các phương thức trong
DataContext trả về dữ liệu.
4. Cung cấp khả năng thiết kế, thừa kế các mối quan hệ
giữa các lớp thực thể.
Mô hình ORM:


Thiết kế ORM (Object Relational Mapping)
Linq to sql

Chức năng chính : LINQ to SQL giúp chuyển đổi các truy vấn đã tích
hợp ngôn ngữ trong mô hình đối tượng và chuyển chúng vào cơ sở dữ
liệu để xử lý. Khi có kết quả, LINQ to SQL chuyển chúng trở lại các
đối tượng mà bạn đang lập trình bằng ngôn ngữ của bạn.

Ngoài ra, bạn có thể pha trộn mã LINQ to SQL với các ứng dụng
ADO.NET sẵn có và chuyển các giải pháp ADO.NET cho LINQ to
SQL vì nó là một phần của ADO.NET và được cung cấp dịch vụ bởi
nhà cung cấp ADO.NET.
LINQ to SQL là một phiên bản hiện thực hóa của O/RM (object
relational mapping) có bên trong .NET Framework bản “Orcas” (nay
là .NET 3.5)
Linq to SQL là gì?
Thao tác với Linq

Để thao tác với LinQ trước hết chúng ta phải khai báo
một intance của DataContext.

Có thể nói DataContext chính là điểm bắt đầu và cốt lõi
để làm việc với Linq.

DataContext chính là môi trường quản lí các đối tượng sau
khi được mapping và đảm nhiêm việc giao tiếp với csdl của
chúng ta.
Tùy vào tên gọi mà bạn đặt cho file .dbml mà chung ta có
tên DataContext tương ứng.

Vd: Nếu đặt tên file là demo => DataContext sẽ được tự
động đặt tên là demoDataContext.
Lưu ý: Đây là tên do máy tự đặt, bạn có thể tùy chình lại theo
ý mình bằng cách vào Properties của DataContext .
Truy vấn dữ liệu:
Sau khi đã có được môt intance của DataContext thì ta bắt đầu thực
hiện các thao tác với csdl.
Tương tự như SQL , chúng ta cũng phải viết các câu lệnh truy
vấn , nhưng cú pháp truy vấn của Linq có nhiều điểm khác
so với SQL bởi đang truy vấn trên tập các Object.
Cú pháp
From tên dại diện in dc.tập Object trong datacontext
Where điều kiện lọc
Order by sắp xếp
Select tên đại diện
(hoặc Select new {
thực hiện việc gán các alias cho tên các cột nếu có yêu cầu.
})
Nếu đặt intance của datacontext là dc thì ta có cấu trúc như sau
Lưu ý:
Khi truy vấn chúng ta phải khai báo một biến kiểu Collection
IEnumerable<Ojbect> hoặc đơn giản là một biến kiểu var
(anonymus) để khi thực hiện câu lệnh truy vấn dữ kiệu sẽ được
chứa vào biến này.
VD:
Cập nhật dữ liệu:
Linq cung cấp cho các bạn một cách thức đơn giản thông
qua việc tương tác với các Object từ đó cập nhật vào csdl thông
qua DataContext.
Hàm InsertOnSubmit(object) them 1 object vao danh sách

các object đã có.
Hàm SubmitChanges() của DataContext thực hiện việc cập
nhật dữ liệu từ cac object vào csdl
Thêm
Cập nhật
Hàm SubmitChanges() của DataContext thực hiện việc cập
nhật dữ liệu từ các object vào csdl
Linq hỗ trợ truy cập đến 1 object thuộc một Entity thông qua giá
trị của các thuộc tính bằng hàm Single cùng với cú pháp lamda đơn
giản. Như ví dụ bên dưới
Xóa
Hàm DeleteOnSubmit(object) để xóa 1 object khỏi danh
sách các object hiện hành.
Hàm SubmitChanges() của DataContext thực hiện việc cập
nhật dữ liệu từ các object vào csdl
Hướng Dẫn Demo
1.Tạo một file demo.dbml để bắt đầu sử dụng
Linq to SQL
2.Sử dụng Linq to SQL để truy vấn, thêm,
xóa, sửa dữ liệu
3.Kiểm tra dữ liệu với partial class.
Thêm mới một file dbml đặt tên là demo.dbml
File demo.dbml sau khi tao trong project của chúng ta.
Kết nối với csdl thông qua Server Explorer, kéo từng
bảng trong thư mục Table vào giao diện thiết kế của file
demo.dbml. Làm xong các thao tác trên, bạn có mô hình
như sau.
Code cho phần truy vấn dữ liệu.
Code cho phần truy vấn dữ liệu với điều kiện.

×