1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuyên đề công nghệ linq

11 236 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 1,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu về LINQ Xử lý thông tin hay dữ liệu là nhiệm vụ quan trọng nhất của bất kỳ phần mềm nào và một trong những trở ngại chính mà các nhà phát triển hiện nay phải đối mặt là khác b

Trang 1

Tổng Quan về LINQ

1 Giới thiệu về LINQ

Xử lý thông tin hay dữ liệu là nhiệm vụ quan trọng nhất của bất kỳ phần mềm nào và một trong những trở ngại chính mà các nhà phát triển hiện nay phải đối mặt là khác biệt giữa ngôn ngữ lập trình hướng đối tượng và ngôn ngữ truy vấn dữ liệu, vấn đề càng phức tạp hơn với sự xuất hiện của XML (eXtensible Markup Language – ngôn ngữ đánh dấu mở rộng)

LINQ là gì ?

Để 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 cho các lập trình viên, Microsoft đã phát triển giải pháp tích hợp dữ liệu NET Framework có tên gọi là LINQ (Language Integrated Query) Đây 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) nhằm cung cấp khả năng truy vấn trực tiếp dữ liệu Object, cơ sở dữ liệu và XML

Điểm mạnh của LINQ là “viết truy vấn cho rất nhiều các đối tượng dữ liệu” Từ cơ sở dữ liệu, XML, Data Object … thậm chí là viết truy vấn cho một biến mảng đã tạo ra trước đó Vì thế ta

có các khái niệm như là LinQ to SQL, LinQ to XML,…

Các thành phần của LINQ

Hình 1 Kiến trúc của LINQ trong NET Framework 3.5

Trang 2

LINQ to Objects

“LINQ to Objects” ở đây có nghĩa là nói đến cách sử dụng LINQ đối với các đối tượng

Collection mà đã được thực thi giao diện IEnumerable hoặc IEnumerable<T> tức những Collection có thể “liệt kê” ra được Đây là trường hợp sử dụng đơn giản nhất của LINQ khi làm việc với dữ liệu

LINQ to SQL

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 3.5, nó cho phép bạn mô hình hóa một cơ sở dữ liệu dùng các lớp .NET Sau đó bạn có thể truy vấn cơ sở dữ liệu dùng LINQ, cũng như cập nhật/thêm/xóa dữ liệu từ đó

LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure (SP) Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của bạn

LINQ to XML

Sử dụng LINQ với mục đích truy vấn file XML và tiện lợi truy vấn hơn nhiều so với việc dùng XmlDocument, Xpath và Xquery như trước kia

LINQ to Datasets

Giới thiệu sơ về DataSet

DataSet trong ADO.NET là một bước phát triển lớn trong việc phát triển ứng dụng cơ sở dữ liệu đa hệ Khi lấy và chỉnh sửa dữ liệu, duy trì liên tục kết nối tới Data Source trong khi chờ user (người dùng) yêu cầu thì rõ ràng là tốn tài nguyên máy rất nhiều

DataSet giúp ích ở đây rất lớn Vì DataSet cho phép lưu trữ dữ liệu và chỉnh sửa tại ‘local cache’, hay gọi là offline mode Có thể xem xét và xử lý thông tin trong khi ngắt kết nối Sau khi chỉnh sửa và xem xong thì tạo một kết nối và update dữ liệu từ local vào Data Source

Dữ liệu trong DataSet được lưu trữ dưới dạng một Collection các Tables và bạn cần phải xử lý thông qua các lớp DataTable (DataRow và DataColumn)

Trang 3

Hình 2 Kiến trúc DataSet.

LINQ to DataSet cho phép người lập trình sử dụng DataSets như một nguồn dữ liệu bình

thường bằng các cú pháp truy vấn căn bản của LINQ

KẾT NỐI ĐẾN CSDL

- View -> Server Explorer

- Kích phải chuột lên DataConnection -> Add Connection

Hình 3 Kết nối đến cơ sở dữ liệu

Trang 4

Tạo ra mô hình dữ liệu LINQ TO SQL

Hình 4 Tạo mô hình LinQ to SQL

Hình 5 Tạo mô hình LinQ to SQL

Trang 5

MÔ HÌNH ÁNH XẠ CỦA LINQ TO SQL (ánh xạ CSDL theo hướng đối tượng)

Hình 6 Mô hình ánh xạ LinQ to SQL

Trang 6

TẦNG KIẾN TRÚC CỦA LINQ TO SQL

(là cầu nối giao tiếp giữa Application và SQL Server)

Hình 7 Tầng kiến trúc của LinQ to SQL

Một số ví dụ Demo

LINQ TO DATASET

Dùng để truy vấn, sắp xếp, lọc dữ liệu,…nhanh và dễ dàng hơn

Hình 8 Lọc dữ liệu theo khoa của LinQ to DataSet

Trang 7

this.view_LinqtoDataSetTableAdapter.Fill(this.dataSet_LinQtodataset.View_LinqtoDataSet, cbbKhoa.SelectedValue.ToString());

LINQ TO SQL

SELECT

VD: Hiển thị DL bảng SinhVien

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

select p;

VD: Hiển thị DL bảng SinhVien (Lựa chọn cột hiển thị)

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

select new {p.MaSV, p.HoSV, p.TenSV};

Take,Skip

VD: Lấy mẫu tin đầu tiên trong bảng(Lấy sinh viên đầu tiên trong bảng SinhVien)

var sinhviens = (from p in db.SinhVien

select p).Skip(0).Take(1); //Tương đương SELECT TOP 1 trong SQL VD: Tương tự trên, nhưng lấy mẫu tin cuối cùng(sinh viên cuối cùng trong bảng SinhVien) var sinhviens = (from p in db.SinhVien

orderby p.MaSV descending select p).Skip(0).Take(1);

VD: Tương tự trên, nhưng lấy mẫu tin thứ 5 và 6(sinh viên thứ 5 và 6 trong bảng SinhVien) var sinhviens = (from p in db.SinhVien

select p).Skip(4).Take(2);

Orderby

VD: Sắp xếp giảm dần theo cột tên (mặc định tăng dần)

Trang 8

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

orderby p.TenSV descending

select new {p.MaSV, p.HoSV, p.TenSV};

Distinct() //Loại bỏ các phần tử trùng nhau

VD: Sắp xếp giảm dần theo cột tên

dbDataContext db = new dbDataContext();

var sv = (from p in db.SinhViens

select new {p.MaSV, p.HoSV, p.TenSV}).Distinct();

Where

VD: Lấy điều kiện theo MaKhoa

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

where p.MaKhoa=="CN"

select new {p.MaSV, p.HoSV, p.TenSV};

VD: Lấy điều kiện theo Họ (chuỗi liên quan đến)

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

where p.HoSV.Contains(“Trần“)

select new {p.MaSV, p.HoSV, p.TenSV};

VD: Lấy điều kiện theo Họ (ký tự đầu tiên)

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

where p.HoSV StartsWith (“T“)

select new {p.MaSV, p.HoSV, p.TenSV};

VD: Lấy điều kiện theo Họ (ký tự cuối)

Trang 9

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

where p.HoSV EndsWith (“y“)

select new {p.MaSV, p.HoSV, p.TenSV};

Join

VD: Liên kết nhiều bảng

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

join k in db.Khoas

on p.MaKhoa equals k.MaKhoa

select new {p.MaSV, p.HoSV, p.TenSV,p.TenKhoa};

Group

VD: Nhóm dữ liệu (Tính tổng học bổng theo khoa)

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

join k in db.Khoas

on p.MaKhoa equals k.MaKhoa

group p by p.Khoa.TenKhoa into kq

select new { MaSV= kq.Key,TongHB=kq.Sum(t=>t.HocBong) };

CÁC HÀM TỔNG HỢP

VD: Liên kết nhiều bảng

dbDataContext db = new dbDataContext();

var sv = from p in db.SinhViens

join k in db.Khoas

on p.MaKhoa equals k.MaKhoa

group p by p.Khoa.TenKhoa into kq

Trang 10

select new { MaSV= kq.Key,TongHB=kq.Sum(t=>t.HocBong) };

select new { MaSV= kq.Key,TongHB=kq Average(t=>t.HocBong) };

select new { MaSV= kq.Key,SoLuongSV=kq Count()};

select new { MaSV= kq.Key,TongHB=kq Max(t=>t.HocBong) };

select new { MaSV= kq.Key,TongHB=kq.Min(t=>t.HocBong) };

Dùng để Thêm, Sửa, Xóa,…

Thêm thông tin

InsertOnSubmit()và SubmitChanges()

Hình 9 Thêm thông tin vào cơ sở dữ liệu

Xóa thông tin

DeleteOnSubmit()và SubmitChanges()

Trang 11

Hình 10 Xóa thông tin từ cơ sở dữ liệu.

Cập nhật thông tin

SubmitChanges()

Hình 11 Cập nhật thông tin xuống cơ sở dữ liệu

=========XIN TẠM DỪNG Ở ĐÂY==========

Ngày đăng: 16/10/2014, 14:57

HÌNH ẢNH LIÊN QUAN

Hình 1. Kiến trúc của LINQ trong .NET Framework 3.5 - Chuyên đề công nghệ linq
Hình 1. Kiến trúc của LINQ trong .NET Framework 3.5 (Trang 1)
Hình 2. Kiến trúc DataSet. - Chuyên đề công nghệ linq
Hình 2. Kiến trúc DataSet (Trang 3)
Hình 4. Tạo mô hình LinQ to SQL. - Chuyên đề công nghệ linq
Hình 4. Tạo mô hình LinQ to SQL (Trang 4)
Hình 6. Mô hình ánh xạ LinQ to SQL. - Chuyên đề công nghệ linq
Hình 6. Mô hình ánh xạ LinQ to SQL (Trang 5)
Hình 7. Tầng kiến trúc của LinQ to SQL. - Chuyên đề công nghệ linq
Hình 7. Tầng kiến trúc của LinQ to SQL (Trang 6)
Hình 9. Thêm thông tin vào cơ sở dữ liệu. - Chuyên đề công nghệ linq
Hình 9. Thêm thông tin vào cơ sở dữ liệu (Trang 10)
Hình 11. Cập nhật thông tin xuống cơ sở dữ liệu. - Chuyên đề công nghệ linq
Hình 11. Cập nhật thông tin xuống cơ sở dữ liệu (Trang 11)
Hình 10. Xóa thông tin từ cơ sở dữ liệu. - Chuyên đề công nghệ linq
Hình 10. Xóa thông tin từ cơ sở dữ liệu (Trang 11)

TỪ KHÓA LIÊN QUAN

w