Thứ hai, ngày 5 tháng 12 năm 2016

Hướng dẫn cơ bản sử dụng LINQPad

Ngày đăng: 19/3/2012, 12:49:27AM | Lượt xem: 6,771
Hot!

LINQPad là một công cụ được tạo ra để giúp thao tác với database bằng LINQ bởi tác giả Joseph Albahari. Với phiên bản mới nhất hiện nay, LINQPad hỗ trợ tất cả chức năng của C# 4.0 và .NET Framework 4.0: LINQ to Object, LINQ to XML, LINQ to SQL và Parallel LINQ. LINQPad còn cung cấp rất nhiều ví dụ từ cơ bản đến nâng cao, có thể nói đây là công cụ giúp học LINQ tốt nhất hiện nay.

LINQPad là một công cụ được tạo ra để giúp thao tác với database bằng LINQ bởi tác giả Joseph Albahari. Với phiên bản mới nhất hiện nay, LINQPad hỗ trợ tất cả chức năng của C# 4.0 và .NET Framework 4.0: LINQ to Object, LINQ to XML, LINQ to SQL và Parallel LINQ. LINQPad còn cung cấp rất nhiều ví dụ từ cơ bản đến nâng cao, có thể nói đây là công cụ giúp học LINQ tốt nhất hiện nay.

Home Page + Download: http://www.linqpad.net/

Giao diện

Ngoài việc hỗ trợ chuyển đổi source-code thành cú pháp lambda và SQL, phiên bản mới nhất 4.31 còn hỗ trợ ngôn ngữ IL (Intermediate Language).

Cửa sổ LINQPad chia làm 4 vùng chính:

Vùng 1: Quản lý các kết nối liệu

Vùng 2: Quản lý các ví dụ, mã nguồn

Vùng 3: Soạn thảo mã nguồn. Vùng này cung cấp một thanh công cụ đơn giản bên trên gồm hai nút Execute (F5), Cancel (Shift+F5), tùy chọn ngôn ngữ và Database.

Vùng 4: Hiển thị kết quả

Tạo Connection

Sau khi cài đặt, LINQPad sẽ cung cấp cho bạn tập tin Nutshell.mdf chứa dữ liệu cho 500 ví dụ được cung cấp trong sách  C# 4.0 in a Nutshell. Tập tin này được đặt trong thư mục AppData\Roaming\LINQPad của người dùng.

Để tạo một connection mới, bạn nhấn vào mục Add connection trong Vùng 1, trong cửa sổ Choose Data Context tôi để tùy chọn mặc định là Default (LINQ to SQL), nhấn Next. Trong cửa sổ LINQ to SQL Connection tiếp theo bạn thiết lập các tùy chọn tương tự như khi tạo connection trong Visual Studio. Trong phần Database, tôi chọn Display all in a TreeView để LINQPad lấy và hiển thị tất cả database trong server.

Ngôn ngữ soạn thảo

LINQPad hỗ trợ 3 ngôn ngữ lập trình .NET là C#, VB.NET và F#. Với mỗi loại ngôn ngữ này, LINQPad còn cho phép thực thi mã nguồn theo Expression (biểu thức), Statement (câu lệnh) và Program (chương trình). Ngoài ra LINQPad còn cho phép bạn thực thi các câu lệnh SQL và ESQL.

Note: Một program bao gồm nhiều statement, một statement gồm một/nhiều expression.

Tạo dữ liệu cho Nutshell.mdf

Trong trường hợp cần khôi phục lại dữ liệu cho tập tin database này, bạn có thể vào phần Samples>C# 4.0 in a Nutshell>Before You Start, mở mục Populate Demo Database. Đây là toàn bộ mã SQL để tạo dữ liệu cho tập tin Nutshell.mdf (hãy chọn database cần tạo dữ liệu trong combo box Database ở thanh công cụ soạn thảo), bạn nhấn nút Execute (F5) ở bên trên cửa sổ để thực thi. Sau khi thực thi thành công, bạn sẽ thấy thông báo “Query successful” và kết quả là “Done!”.

Ví dụ

LINQ to Object

Mở LINQPad lên, khi đó chương trình sẽ tạo sẵn cho bạn tài liệu “Query1”, gõ câu LINQ (C#) sau vào nhấn F5, kết quả sẽ hiển thị theo dạng bảng như trong hình. Dựa vào kết quả này bạn có thể biết đây là một IEnumerable<Char>

C# Expression:

from character in "Yin Yang"
select character

Output:

Trong trường hợp có nhiều biểu thức trong tài liệu, bạn có thể quét chọn và thực thi riêng từng biểu thức. LINQPad còn cung cấp phương thức Dump() (một extension method cho tất cả đối tượng) cho phép bạn hiển thị nội dung của một đối tượng ra vùng xuất. Ví dụ:

C# Statement(s):

var a = new {FirstName="Yin", LastName="Yang"};
a.Dump();

Output:

ø
{ FirstName = Yin, LastName = Yang }
FirstName Yin
LastName Yang

LINQPad có thể hiển thị kết quả trong các bảng lồng nhau như ví dụ sau.

C# Statement(s):

var info = new {Age=10, School="ABC"};
var a = new {Name="YinYang",info};
a.Dump();

Output:

ø
{ Name = YinYang, info = { Age = 10, School = ABC } }
Name YinYang
info
ø
{ Age = 10, School = ABC }
Age 10
School ABC

Trong trường hợp cần xuất ra nhiều kết quả, bạn có thể truyền một tham số kiểu string vào phương thức Dump() để tiêu đề cho mỗi phần kết quả. Ví dụ tiếp theo sẽ cho bạn thấy kết quả:

LINQ to XML

Tạo một tập tin note.xml trong thư mục gốc C:\ với nội dung:

<note>
	<to>Tove</to>
		<from>Jani</from>
		<heading>Reminder</heading>
	<body>Don't forget me this weekend!</body>
</note>

Sử dụng LINQ to XML để lấy tên các phần tử con của node gốc:

XDocument x=XDocument.Load("C:\\note.xml");
var a= from e in x.Element("note").Elements()
select e.Name;
a.Count().Dump("count");
a.Dump("note.xml");

Output:

count
4
note.xml
IEnumerable<XName> (4 items)
to
from
heading
body

LINQ to SQL

Nhấn phải chuột vào một bảng trong vùng Connection, bạn có thể chèn các biểu thức LINQ được cung cấp sẵn từ menu ngữ cảnh. LINQPad tự động tạo ra các entity class cho phép bạn sử dụng LINQ to SQL để truy vấn dữ  liệu.

Biểu thức sau sẽ lấy ra 5 khách hàng từ Brazil trong bảng Customers  và sắp xếp theo City

(from c in Customers
where c.Country=="Brazil"
orderby c.City
select new
{
	c.CustomerID,
	c.ContactName,
	c.City,
	c.Country
})
.Take(5)

Output:

IOrderedQueryable<> (5 items)
CustomerID ContactName City Country
GOURL André Fonseca Campinas Brazil
WELLI Paula Parente Resende Brazil
QUEDE Bernardo Batista Rio de Janeiro Brazil
HANAR Mario Pontes Rio de Janeiro Brazil
RICAR Janete Limeira Rio de Janeiro Brazil

Biếu thức C# trên có thể chuyển sang mã SQL tương đương như sau:

-- Region Parameters
DECLARE @p0 NVarChar(1000) = 'Brazil'
-- EndRegion
SELECT TOP (5) [t0].[CustomerID], [t0].[ContactName], [t0].[City], [t0].[Country]
FROM [Customers] AS [t0]
WHERE [t0].[Country] = @p0

Một cách tốt để bạn học LINQ là xem các ví dụ trong phần Samples và trong sách của tác giả “C# 4.0 in a Nutshell

http://yinyangit.wordpress.com

 Chia sẻ qua: 
Hot!
Ý kiến bạn đọc

These items will be permanently deleted and cannot be recovered. Are you sure?

Gallery

image

Maecenas viverra rutrum pulvinar

Maecenas viverra rutrum pulvinar! Aenean vehicula nulla sit amet metus aliquam et malesuada risus aliquet. Vestibulum rhoncus, dolor sit amet venenatis porta, metus purus sagittis nisl, sodales volutpat elit lorem…

Read more

Text Links

Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
Copyright © 2011 - 2012 vietshare.vn by phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.