Tai lieu LINQ ppt

19 511 8
Tai lieu LINQ ppt

Đ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

ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN LT WIN ĐỀ TÀI TÌM HIỂU LINQ • ĐOÀN THÁI TỚI: 0863163 • QUÂN: 07…. NHÓM THỰC HIỆN 1> LINQ là gì ? - Khái niệm LINQ & MỤC ĐÍCH  Data Structure and Algorithm – Cấu trúc dữ liệu và giải thuật  Relational Database Management System, SQL- Cơ sở dữ liệu quan hệ  Object Oriented Programming – lập trình hướng đối tượng  Desgn Pattern – kiểu mẫu thiết kế cho OOP  Và XML – ngôn ngữ đánh dấu mở rộng  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.  Thay vì thêm hàm truy vấn riêng biệt cho CSDL quan hệ, rồi .NET collection, hàm gọi Xpath để truy vấn XML, tại sao chúng ta không tìm một giải pháp chung để truy vấn các nguồn dữ liệu khác nhau?  Trước đây với những ứng dụng đa tầng, nội dung dữ liệu là như nhau nhưng ở những tầng khác nhau, data tier, middle tier, chúng được lưu giữ ở dạng khác nhau, table ở data tier, .NET collection, data set ở middle tire. Điều này khiến cho việc truy vấn ở mỗi tầng phải có kỹ thuật, cú pháp lập trình khác nhau  Bên Java có Hibernate thì LINQ cũng tương tự như vậy, nó đưa ra khả năng lập trình mới trong .NET kiểu truy vấn :Sql DB, Objects và Xml Giải pháp lập trình hợp nhất, đem đến khả năng truy vấn dữ liệu theo cú pháp SQL trực tiếp trong C# hay VB.NET, áp dụng cho tất cả các dạng dữ liệu từ đối tượng đến CSDL quan hệ và XML. 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).  Hiện tại, cách phổ biến nhất để ứng dụng lấy dữ liệu từ các hệ cơ sở dữ liệu (CSDL) là sử dụng SQL (Structure Query Language - ngôn ngữ truy vấn cấu trúc). 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 lập trình viê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. 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 ), nhà phát triển lại phải sử dụng cú pháp truy vấn khác (XPath/XQuery).  Để 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), đâ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) cung cấp khả năng truy vấn trực tiếp dữ liệu Object, CSDL và XML. 1> LINQ là gì ? - Khái niệm LINQ & MỤC ĐÍCH 2. CÁC THÀNH PHẦN LINQ CUNG CẤP XU HƯỚNG PHẦN MỀN: PHÂN TÁN HƠN, HƯỚNG DỊCH VỤ HƠN Dữ liệu được trung chuyển qua nhiều tầng, trao đổi qua các dịch vụ, lấy từ nhiều nguồn. Nếu không có một phương pháp truy vấn tổng quát, lập trình viên phải làm việc nhiều hơn, debug nhiều hơn, học nhiều hơn, copy paste nhiều hơn để cho ra sản phẩm không dễ dàng bảo quản, kiểu như lập trình giao diện bằng Assamply 2. CÁC THÀNH PHẦN LINQ CUNG CẤP  LINQPad cho phép bạn tác động vấn tin các cơ sở dử liệu SQL với 1 ngôn ngữ hiện đại là: LINQ. Nói lời tạm biệt tới SQL Management Studio. LINQPad hổ trợ mọi thứ trên C# 3.0 và Framewrok 3.5 chẳn hạn như : 1. LINQ to Objects 2. LINQ To XML 3. LINQ to Dataset 4. LINQ To Entities 5. LINQ to SQL  Với LINQ bạn không những có thể truy vấn cơ sở dữ liệu mà bạn còn có thể truy vấn các Collections, ADO.NET Datasets, XML Documents, string, và các nguồn dữ liệu khác miễn là chúng thực thi giao diện IEnumrable hoặc IEnumrable<T> 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN  LINQ hỗ trợ loại dữ liệu IEnumerable <T>. Những đối tượng hỗ trợ IEnumerable <T> và IQueryable(T) được gọi là queryable.  Có 3 phần của biểu thức LINQ 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. Kết quả trả về của LINQ người ta gọi là sequence.Hầu hết sequence là IEnumerable<T> với T là KDL của những đối tượng trong sequence. 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. 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN Vd: class IntroToLINQ { static void Main() { int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 }; // 1. Nguồn dữ liệu. var numQuery = from num in numbers where (num % 2) == 0 select num; // 2. Câu truy vấn foreach (int num in numQuery) // 3. Thực hiện câu truy vấn { Console.Write("{0,1} ", num); } } } Vd: class IntroToLINQ { static void Main() { int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 }; // 1. Nguồn dữ liệu. var numQuery = from num in numbers where (num % 2) == 0 select num; // 2. Câu truy vấn foreach (int num in numQuery) // 3. Thực hiện câu truy vấn { Console.Write("{0,1} ", num); } } } 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN 1.Select / SelectMany 11. Reverse 2. Sum /Min/Max/Average 12. Any / All / Contains 3.GroupBy 13. Skip / SkipWhile 4. Where 14. Concat 5. Join / GroupJoin 15. Count 6. EqualAll 16. Union / Intersect /Except 7. ElementAt 17. Sum /Min/Max/Average Aggregate 8. OrderBy / ThenBy 18. First /FirstOrDefault /Last LastOrDefault 9. Distinct 19. OfType 10. Single 4. ỨNG DỤNG LANQ LINQ to Entity: là một LINQ API khác để giao tiếp với cơ sở dữ liệu. So với LINQ to SQL, LINQ to Entity mang nhiều tham vọng hơn, mạnh mẽ hơn nhưng cũng phức tạp hơn. Hiện tại, LINQ to Entity chưa hoàn thiện như LINQ to SQL 4.2 Linq To Entities VD: using(var data = new LinqToEntities()) { var names = new[] { “A”, “B”, “C”}; for(int i = 0; i < names.lenght; i + +) { var customers = from k in data.Customers where k.names = names[i]; select k; } } VD: using(var data = new LinqToEntities()) { var names = new[] { “A”, “B”, “C”}; for(int i = 0; i < names.lenght; i + +) { var customers = from k in data.Customers where k.names = names[i]; select k; } } [...]... Ten = Armando Valdes Ten = Armando Valdes 4 ỨNG DỤNG LANQ 4.4 Linq to SQL  LINQ To SQL cho phép mô hình cơ sở dữ liệu mối quan hệ bằng các lớp Sau đó chúng ta có thể truy vấn dữ liệu (update/insert/delete…) thông qua các lớp đó   Giống như cơ sở dữ liệu SQL, LINQ To SQL có hỗ trợ transactions, views, and stored procedures  Ngoài ra, LINQ To SQL cung cấp cơ chế để cho lập trình viên dễ dàng thêm... db.Submitchanges(); db.Submitchanges(); 4 ỨNG DỤNG LANQ 4.4 Linq to SQL 4.4.4 Xóa các sản phẩm NorthwindDataContext db = new NorthwindDataContext() NorthwindDataContext db = new NorthwindDataContext() Var TenProducts = from nhom13 in db.Products Var TenProducts = from nhom13 in db.Products where nhom13.ProductName.Contains(“Ten”) where nhom13.ProductName.Contains(“Ten”) select nhom13; select nhom13; db.Products.RemoveAll(TenProducts);... numbers = new int[] {1,2,3}; int result = numbers.sum(); int result = numbers.sum(); console.writeline(result); console.writeline(result); Ket qua xuat ra: 6 Ket qua xuat ra: 6 4 ỨNG DỤNG LANQ 4.3 Linq to Datasets LINQ to Datasets : Cho phép bạn có thể truy vấn các Dataset hoặc DataTable DataTable orders = ds.Tables["SalesOrderHeader"]; DataTable orders = ds.Tables["SalesOrderHeader"]; var ordersQuery =... thêm vào các thao tác tính toán, truy vấn cơ sở dữ liệu, để truy vấn dữ liệu phù hợp với nhu cầu của từng loại hệ thống phần mềm LINQ To SQL cung cấp cơ chế để cho lập trình viên thêm vào các phương thức để xác nhận tính hợp lệ của dữ liệu (data validation) 4 ỨNG DỤNG LANQ 4.4 Linq to SQL 4.4.1 Lấy các Product từ CSDL NorthwindDataContext db= new NorthwindDataContext() NorthwindDataContext db= new NorthwindDataContext()... K.Field("SalesOrderID"), select new { SalesOrderID = K.Field("SalesOrderID"), OrderDate = K.Field("OrderDate") }; OrderDate = K.Field("OrderDate") }; 4 ỨNG DỤNG LANQ 4.4 Linq to XML LINQ to XML là một cách mới để xây dựng, viết và đọc dữ liệu XML trong các ngôn ngữ NET VD: VD: XDocument loaded = XDocument.Load(@"C:\contacts.xml"); XDocument loaded = XDocument.Load(@"C:\contacts.xml");... nhom13; select nhom13; db.Products.RemoveAll(TenProducts); db.Products.RemoveAll(TenProducts); db.Submitchanges(); db.Submitchanges(); 5 Chốt lại LINQ là một trong những tính năng cốt lõi của NET Framework, được hỗ trợ đầy đủ trong các ngôn ngữ C# và VB LINQ hiện có một dải rộng các ứng dụng tiềm năng Nói một cách đơn giản, nó cung cấp một mô hình mang tính khai báo cho việc nhận và xử lý dữ liệu cho... db.products.Single(nhom13 => nhom13.ProductName == “Ten”; Product.UnitPrice = 99; Product.UnitPrice = 99; Product.UnitsInStock = 5; Product.UnitsInStock = 5; Db.SubmitChanges(); Db.SubmitChanges(); 4 ỨNG DỤNG LANQ 4.4 Linq to SQL 4.4.3 Chèn thêm phân loại và thêm mới sản phẩm NorthwindDataContext db = new NorthwindDataContext() NorthwindDataContext db = new NorthwindDataContext() Category category = new Category();...4 ỨNG DỤNG LANQ 4.1 Lanq To Objects LINQ to Objects : Cho phép chúng ta có thể truy vấn các Objects trong một Collection, các kiểu đối tượng này phải thực thi giao diện Enumrable hoặc IEnumrable VD: VD: int[] numbers = new int[] {1,2,3};... nhom13 in db.products Var products = from nhom13 in db.products where k.Category.CategoryName == “Beverages” where k.Category.CategoryName == “Beverages” select nhom13; select nhom13; 4 ỨNG DỤNG LANQ 4.4 Linq to SQL 4.4.2 Cập nhật 1 sản phẩm NorthwindDataContext db= new NorthwindDataContext() NorthwindDataContext db= new NorthwindDataContext() Products = db.products.Single(nhom13 => nhom13.ProductName . trên C# 3.0 và Framewrok 3.5 chẳn hạn như : 1. LINQ to Objects 2. LINQ To XML 3. LINQ to Dataset 4. LINQ To Entities 5. LINQ to SQL  Với LINQ bạn không những có thể truy vấn cơ sở dữ liệu. DỤNG LANQ LINQ to Entity: là một LINQ API khác để giao tiếp với cơ sở dữ liệu. So với LINQ to SQL, LINQ to Entity mang nhiều tham vọng hơn, mạnh mẽ hơn nhưng cũng phức tạp hơn. Hiện tại, LINQ to. Assamply 2. CÁC THÀNH PHẦN LINQ CUNG CẤP  LINQPad cho phép bạn tác động vấn tin các cơ sở dử liệu SQL với 1 ngôn ngữ hiện đại là: LINQ. Nói lời tạm biệt tới SQL Management Studio. LINQPad hổ trợ mọi

Ngày đăng: 10/08/2014, 00:23

Mục lục

  • 2. CÁC THÀNH PHẦN LINQ CUNG CẤP

  • 2. CÁC THÀNH PHẦN LINQ CUNG CẤP

  • 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN

  • 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN

  • 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN

  • 3. TRUY VẤN CỦA LINQ, CÁC TOÁN TỬ VÀ VD TRUY VẤN

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan