Tải bản đầy đủ (.pdf) (6 trang)

Làm việc với LINQ trên Visual Studio 2008 O/R Designer potx

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 (121.33 KB, 6 trang )

Làm việc với LINQ trên Visual Studio 2008
O/R Designer


LINQ và Visual Studio 2008 IDE khiến cho việc lấy dữ liệu trở nên khá dễ
dàng từ một cơ sở dữ liệu SQL Server. Visual Studio bao gồm một mục khung
mẫu có tên gọi LINQ to SQL Classes mà bạn có thể thêm vào trong dự án.
Một
tài nguyên dbml được tạo ra khi bạn thêm vào kiểu mục này với một tên mặc
định (mà bạn có thể thay đổi) của DataClasses1.dbml.

Khi mục đó được bổ sung thì ô O/R Designer sẽ được mở ra bên trong Visual
Studio. Điều này sẽ cho phép bạn kéo và thả các mục cơ sở dữ liệu (bảng, xem
,
thủ tục lưu trữ) tới O/R Designer. O/R Designer tạo ra tập tin dbml, tập tin này
sẽ cung cấp kết nối giữa các lớp LINQ to SQL Classes và các đối tượng cơ sở
dữ liệu. O/R Designer đồng thời cũng tạo ra DataContext và các lớp thực thể.

Có hai khu vực chính bên trong O/R Designer là Entities và Methods.
Khu vực
chính của cùng thiết kế dành cho các thực thể như Tables và Viewa, cùng với
sự phân cấp và mọi thứ có liên quan. Ô Methods bao gồm các thủ tục và chức
năng được lưu trữ đã được nối kết tới các phương pháp của lớp DataContext.
O/R Designer hiện thời hỗ trợ SQL Server 2000, SQL Server 2005 và SQL
Express Edition.

Trước đi đi sâu vào xem xét ví dụ, chúng ta hãy cùng tìm hiểu kĩ hơn về truy
vấn LINQ.

Truy vấn


Bạn cần thực hiện ba bước để truy nhập dữ liệu thông qua LINQ: Thu thập
nguồn dữ liệu, tạo các truy vấn và thực hiện truy vấn. Một truy vấn được dùng
để định nghĩa xem dữ liệu nào đã được khôi phục từ nguồn dữ liệu. Ngoài ra,
bạn có thể thao tác dữ liệu thông qua việc sắp xếp, nhóm và những thứ tương
tự. Một truy vấn được lưu trữ trong một biến truy vấn và được khở
i tạo với một
biểu thức truy vấn.

Truy vấn có những cú pháp riêng, những cú pháp này mạnh giống với chuẩn
SQL. Một biểu thức truy vấn có ba mệnh đề: from, where và select. Mệnh đề
form định nghĩa nguồn dữ liệu; Mệnh đề select định nghĩa những cái quay trở
lại; Và mệnh đề where (không bắt buộc)
giúp bạn làm rõ hơn một tìm kiếm bao
gồm chỉ các dữ liệu phù hợp với tiêu chuẩn nhất định.
Truy vấn sẽ không được thực hiện cho đến khi nó đã được truy nhập; Điều này
giống như là hoãn lại quá trình thực hiện. Ví dụ tiếp theo sẽ cung cấp nhanh
việc sử dụng truy vấn.

Ví dụ

Tạo một dự án trang web bao gồm một mục LINQ to SQL Classes, mục này
kết nối tới cơ sở dữ liệu chuẩn Northwind trên SQL Server 2000. Một thực thể
được tạo ra cho bảng Customers. O/R Designer tạo ra tập tin dbml đặt tên là
DataClasses1.dbml.

Khi lớp DataContext được tạo ra trên bảng và thủ tục lưu trữ trên cơ sở dữ liệu
Northwind
, bạn có thể sử dụng lớp này trong đoạn mã khác. Khi sử dụng lớp
DataContext được tạo
,

nó phải bao gồm tên với DataContext được bổ sung vào
sau. Trong ví dụ này bạn phải sử dụng tên DataClasses1DataContext. (Visual
Studio IntelliSense hỗ trợ đầy đủ LINQ và tất cả các lớp của nó, vì vậy bạn có
thể dễ dàng tránh được lỗi cho gõ phím).

Tôi sử dụng ASP.NET WEB Form trong ví dụ sau:
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="LINQTest._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
<html xmlns=" >
<head runat="server">
<title>LINQ Example</title></head>
<body>
<form id="frmLINQTest" runat="server">
<div>
<asp:GridView ID="gvCustomers" runat="server"></asp:GridView>
</div></form></body></html>
Web Form có chứa một trường hợp của điều khiển GridView; Điều khiển này
hiển thị dữ liệu thông qua LINQ. Đoạn mã được đặt bên trong sự kiện
Page_Load, vì vậy dữ liệu sẽ được tải vào khi bạn mở trang web.

Bước đầu tiên bạn sẽ tạo ra một thể hiện của lớp DataContext. Điều này sẽ
cung cấp sự truy nhập cơ sở dữ liệu, vì vậy bạn có thể truy nhập vào bảng của
nó như một thuộc tính của lớp DataContext. Ngay khi lớp DataContext được
tạo ra thì bạn có thể lấy dữ liệu từ đây thông qua một truy vấn
.


Đoạn mã bao gồm một truy vấn kéo mọi bản ghi dữ liệu và các cột từ bảng

Customers. Dữ liệu được sắp xếp bởi cột thứ hai và truy vấn được thực hiện
khi nó tác động lên điều khiển GridView trên trang.
protected void Page_Load(object sender, EventArgs e) {
DataClasses1DataContext db = new DataClasses1DataContext();
var customers = from p in db.Customers
orderby 1
select p;
gvCustomers.DataSource = customers;
gvCustomers.DataBind();
}
Đây là đoạn mã tương ứng trên Visual Basic:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim db As DataClasses1DataContext = New DataClasses1DataContext()
Dim customers As Object
customers = From p In db.Customers Order By 1 Select p
gvCustomers.DataSource = customers
gvCustomers.DataBind()
End Sub
Khi tải trang web, mọi dữ liệu từ bảng Customers sẽ được hiển thị trên điều
khiển GridView.

Như trong ví dụ thì
bạn có thể dễ dàng gọi thủ tục lưu trữ trên SQL Server như
là một phương pháp của đối tượng DataContext. Những kết quả của phương
pháp này - thủ tục lưu trữ - có thể được dùng chứa một điều khiển dữ liệu
tương tự như điều khiển mà trước đó sử dụng GridView, như trong đoạn mã
tiếp theo sau đây:
protected void Page_Load(object sender, EventArgs e) {
DataClasses1DataContext db = new DataClasses1DataContext();

var top_customers = db.Ten_Most_Expensive_Products();
gvCustomers.DataSource = top_customers;
gvCustomers.DataBind();
}
Đây là đoạn mã tương ứng trên Visual Basic:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim db As DataClasses1DataContext = New DataClasses1DataContext()
Dim customers As Object
customers = db.Ten_Most_Expensive_Products()
gvCustomers.DataSource = customers
gvCustomers.DataBind()
End Sub
Những ví dụ đơn giản này đã biểu thị cú pháp truy vấn và cách sử dụng O
/R
Designer như thế nào trên Visual Studio 2008.
LINQ cho phép bạn thao tác cập
nhật, xóa, thêm (update, delete, add) và đọc dữ liệu.

M.Hà (Theo Techrepublic)


×