Tìm hiểu LINQ trong C

51 422 0
Tìm hiểu LINQ trong C

Đ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

Tài liệu tìm hiểu linq trong C# LINQ (Language Integrated Query) là một sự đổi mới và tập hợp các tính năng, được giới thiệu trong bộ Visual Studio 2008 và .NET Framework 3.5, LINQ giúp khả năng truy vấn trở nên mạnh mẽ hơn với cú pháp ngôn ngữ C# và Visual Basic

MỤC LỤC MỞ ĐẦU LINQ LÀ GÌ? KIẾN TRÚC VÀ CÁC THÀNH PHẦN CỦA LINQ LINQ QUERIES (C#) LINQ VÀ GENERIC TYPE 10 LINQ QUERY OPERATION 11 LINQ to SQL 29 LINQ to Entities 39 LINQ to Object 47 10 TÀI LIỆU THAM KHẢO 51 LINQ STEP BY STEP by Truong Minh Tuan MỞ ĐẦU Chào bạn ! Lời đầu tiên, gửi lời cảm ơn bạn ủng hộ tài liệu LINQ STEP by STEP, gửi lời tri ân sâu sắc đến với quý bạn đọc thời gian qua ủng hộ viết Blog http://truongminhtuan.info Quyển tài liệu lần này, gửi đến bạn đọc viết truy vấn LINQ, phù hợp cho bạn sinh viên, học sinh theo học ngành CNTT, đặc biệt bạn có { định theo nghiệp lập trình phần mềm, anh chị có { định tự học lập trình theo công nghệ Microsoft Có thể nói LINQ tảng bạn có { định học phát triển phần mềm tảng Internet (website) Application (Form) Microsoft, trước tiên bạn cho hội học ngôn ngữ lập trình như: C, C++, C#, VB.NET – C# sử dụng nhiều VB.NET Trong năm 2016, Blog hướng đến chủ đề nóng hỏi như: - Web API, MVC - Bootstrap, Json - Node.JS, MongoDB Tôi mong nhận góp { chân thành quý bạn đọc để bước hoàn thiện viết tới tài liệu dạng step by step đời thời gian tới Chân thành cảm ơn quý bạn đọc ! Trân trọng! Trương Minh Tuấn LINQ STEP BY STEP by Truong Minh Tuan LINQ LÀ GÌ? LINQ (Language Integrated Query) đổi tập hợp tính năng, giới thiệu Visual Studio 2008 NET Framework 3.5, LINQ giúp khả truy vấn trở nên mạnh mẽ với cú pháp ngôn ngữ C# Visual Basic Trước đây, lập trình viên muốn truy vấn đến sở liệu việc phải có chuỗi kết nối (ConnectionString); sau đó, lập trình viên phải biết thêm ngôn ngữ truy vấn cho loại sở liệu như: SQL Server, XML, Web Service,… Và bây giờ, việc đó, lập trình viên không cần phải tốn nhiều thời gian để tìm tòi học hỏi LINQ có đầy đủ tính mới, cho phép truy vấn liệu trở nên dễ dàng (Nguồn Microsoft) LINQ STEP BY STEP by Truong Minh Tuan LINQ mềm dẻo, dễ học, cho phép việc truy vấn, thao tác với bất kz loại liệu Trong Visual Studio, lập trình viên sử dụng truy vấn LINQ C#, Visual Basic, với SQL Server databases, XML documents, ADO.NET datasets, bất kz đối tượng có hỗ trợ IEnumerable IEnumerable interface Việc sử dụng LINQ dự án cần thiết, phải dùng NET Framework 3.5 trở lên Tuy nhiên, bạn không dùng truy vấn LINQ dự án, việc phụ thuộc vào công ty, doanh nghiệp mà bạn làm việc Namespace hỗ trợ LINQ: System.Linq: hỗ trợ sử dụng Objects; System.Data.Linq: hỗ trợ sử dụng sở liệu quan hệ; System.Data.Objects: hỗ trợ sử dụng Entities; System.XML.Linq: hỗ trợ sử dụng XML; LINQ STEP BY STEP by Truong Minh Tuan KIẾN TRÚC VÀ CÁC THÀNH PHẦN CỦA LINQ Level (Compilers): Hỗ trợ ngôn ngữ C#, VB.NET,… Level (Standard Query Operators): Hỗ trợ toán tử (from, where, order by, select) dùng truy vấn LINQ Expression Trees: Hỗ trợ việc nối toán tử trước thực truy vấn LINQ Level (Linq-enabled data sources): Tầng trung gian, hỗ trợ làm việc với đối tượng Linq to Objects (Objects), ADO.NET (Linq to SQL, Linq to Dataset, Linq to Entities), LINQ to XML (XLinq) Với kiến trúc việc LINQ hỗ trợ SQL Server hiển nhiên, bạn làm việc với hệ quản trị sở liệu khác MySQL, Oracle để làm việc với LINQ phải thông qua công nghệ ADO.NET dùng Linq to Dataset để thực truy vấn Cú pháp LINQ: from name in source where condition orderby ordering, select expr LINQ STEP BY STEP by Truong Minh Tuan LINQ QUERIES (C#) Thông thường, lập trình viên làm việc với sở liệu thông qua truy vấn Query; thế, lập trình viên phải học cú pháp truy vấn cho loại sở liệu khác nhau, như: SQL Server, MySQL, Oracle, XML L{ do, hệ quản trị sở liệu công ty khác phát triển nên cú pháp giống có vài điểm khác để phù hợp LINQ đơn giản hoá vấn đề cách cung cấp mô hình phù hợp để làm việc tất nguồn liệu khác nhau, LINQ, lập trình viên làm việc đối tượng Hoạt động LINQ: phần a Obtain the data source b Create the query c Execute the query LINQ STEP BY STEP by Truong Minh Tuan Một ví dụ để tìm hiểu rõ truy vấn LINQ Nguồn liệu: Dữ liệu mảng, hoàn toàn hỗ trợ đặc điểm IEnumerable interface Điều có nghĩa sử dụng LINQ để truy vấn Và truy vấn thực với câu lệnh foreach Loại có hỗ trợ IEnumerable interface, IQueryable interface gọi loại Queryable foreach (int num in numQuery) { Console.Write("{0,1} ", num); } Truy vấn: Trong ví dụ trên, truy vấn LINQ trả tất số chia hết cho từ mảng số nguyên Các biểu thức truy vấn chứa ba mệnh đề: from, where, select - Mệnh đề from dùng để xác định nguồn liệu - Mệnh đề where dùng để lọc liệu - Mệnh đề select dùng để chọn phần tử trả LINQ STEP BY STEP by Truong Minh Tuan LINQ có dạng cú pháp: Query syntax Method syntax LINQ STEP BY STEP by Truong Minh Tuan LINQ VÀ GENERIC TYPE - LINQ query dựa Generic Type, giới thiệu NET Framework 2.0; - Giá trị trả LINQ IEnumerable IQueryable đối tượng lập trình viên đưa vào Khi đó, lập trình viên dùng câu lệnh foreach để duyệt IEnumerable - Ngoài ra, bạn dùng từ khoá var để thay Generic, lập trình viên sử dụng từ khoá lập trình; - Ví dụ bên cho thấy hoạt động Generic Type LINQ STEP BY STEP by Truong Minh Tuan 10 Bước 08: Thực thao tác Thêm liệu dùng truy vấn LINQ LINQ STEP BY STEP by Truong Minh Tuan 37 Bước 09: Thực thao tác Cập nhật liệu dùng truy vấn LINQ Bước 10: Thực thao tác Xoá liệu dùng truy vấn LINQ LINQ STEP BY STEP by Truong Minh Tuan 38 LINQ to Entities LINQ to Entities phần ADO.NET Entity Framework Nó linh hoạt LINQ to SQL, lập trình viên sử dụng độ phức tạp Tuy nhiên, LINQ to Entities lại hỗ trợ tốt hệ quản trị sở liệu Oracle, MySQL không LINQ to SQL hỗ trợ SQL Server Ngày nay, LINQ to Entities lại nhiều người lựa chọn Vì tính chuyên nghiệp Kể Blog dự án sử dụng LINQ to Entities LINQ STEP BY STEP by Truong Minh Tuan 39 Tôi hướng dẫn cho bạn vài bước thao tác Insert, Update, Delete dùng truy vấn LINQ với LINQ to Entities Bước 01: Tôi dùng Database Project tạo để biểu diễn bước LINQ to Entities Đầu tiên chọn ADO.NET Entity Data Model thay chọn LINQ to SQL loạt LINQ STEP BY STEP by Truong Minh Tuan 40 Bước 02: Chọn Generate from database, có sẵn database SQL Server LINQ STEP BY STEP by Truong Minh Tuan 41 Bước 03: Tạo connectionString để kết nối với SQL Server (tương tự phần LINQ to SQL bên trên) LINQ STEP BY STEP by Truong Minh Tuan 42 Bước 04: Tại đây, tất Table, View, Store Procedure load lên để giúp bạn việc chọn lựa dễ dàng Ở đây, chọn Table, View, SP LINQ STEP BY STEP by Truong Minh Tuan 43 Bước 05: Thực thao tác Hiển thị liệu dùng truy vấn LINQ LINQ STEP BY STEP by Truong Minh Tuan 44 Bước 06: Thực thao tác Thêm liệu dùng truy vấn LINQ Bước 07: Thực thao tác Cập nhật liệu dùng truy vấn LINQ LINQ STEP BY STEP by Truong Minh Tuan 45 Bước 08: Thực thao tác Xoá liệu dùng truy vấn LINQ LINQ STEP BY STEP by Truong Minh Tuan 46 LINQ to Object LINQ to Object cung cấp sử dụng bất kz cú pháp truy vấn LINQ có hỗ trợ IEnumerable, nhằm truy vập vào nhớ collection mà không cần có LINQ provider (API) trường hợp bạn biết: LINQ to SQL, LINQ to XML Truy vấn LINQ to Objects trả kiểu IEnumerable Cách truy vấn gần tương tự truy vấn khác Khi sử dụng LINQ to Object vòng lặp foreach trở nên mạnh mẽ hơn: đọc, lọc, nhóm,… Hiện nay, thường sử dụng LINQ to Object vào dự án MVC nhằm nâng cao khả tiện dụng trình triển khai chương trình LINQ STEP BY STEP by Truong Minh Tuan 47 Bước 01: Tạo Class tương ứng Bước 02: Tạo liệu cho class LINQ STEP BY STEP by Truong Minh Tuan 48 Bước 03: Hiển thị liệu thông qua truy vấn LINQ Hiển thị liệu dùng từ khoá join LINQ STEP BY STEP by Truong Minh Tuan 49 Hiển thị liệu theo dạng Join, GroupBy LINQ STEP BY STEP by Truong Minh Tuan 50 10 TÀI LIỆU THAM KHẢO [1] https://msdn.microsoft.com/en-us/library/bb397926(v=vs.90).aspx [2] http://Asp.net [3] http://Asp.net.vn [4] http://stackoverflow.com [5] http://dotnet-tricks.com Để hoàn thành tốt tài liệu LINQ step by step, có sử dụng số nguồn tư liệu từ Internet Blog anh, chị lẫn nước Nếu có không hài lòng mong qu{ anh, chị thông cảm Mọi thắc mắc xin vui lòng liên hệ: Trương Minh Tuấn eMail: ifsoft@live.com Skype: tieudinhtuan Website: http://truongminhtuan.info LINQ STEP BY STEP by Truong Minh Tuan 51 [...]... 7 LINQ to SQL LINQ to SQL cung c p một c sở hạ tầng cho vi c quản l{ c c dữ liệu quan hệ như c c đối tượng Nó là một thành phần c a version 3.5 NET Framework và LINQ to SQL là một phiên bản hiện th c hoá c a O/RM (object relational mapping) c bên trong NET Framework Nó cho phép bạn mô hình hoá một c sở dữ liệu dùng c c lớp NET Sau đó, bạn c thể truy vấn chúng bằng c ch dùng LINQ – t c nhiên nó cho... IEnumerable ch c c c element quy định LINQ STEP BY STEP by Truong Minh Tuan 24 Ngoài ra, LINQ c n hỗ trợ TakeWhile: bạn nghiên c u theo ví dụ bên dưới LINQ STEP BY STEP by Truong Minh Tuan 25 Skip: là một extension method Nó chỉ trả về c c element tương ứng, tính sau vị trị quy định c a c c phần tử trong collection Skip vô c ng hữu ích khi bạn c n chọn l c và xử l{ vấn đề; Ngoài ra, LINQ c n hỗ trợ... nghiên c u thêm về truy vấn SQL để c nền tảng trư c khi tìm hiểu về LINQ query này Ngoài ra, bạn c thể tìm hiểu về SQL Server, c thể hơn là truy vấn SQL từ trang Blog c nhân c a tôi tại địa chỉ: http://truongminhtuan.info/Books C c ví dụ bên dưới tôi dùng LINQPad để th c hiện, bạn c ng c thể dùng Visual Studio 2010 ho c cao hơn để tìm hiểu từng từ khoá c a LINQ LINQ STEP BY STEP by Truong Minh Tuan... collection Select: trả về c c element trong collection Nó gần tương tự như c pháp truy vấn Query trong SQL LINQ STEP BY STEP by Truong Minh Tuan 19 SelectMany: trả về một tập collection, là kết quả c a mỗi element và đư c chuyển đổi thành một tập collection kh c LINQ STEP BY STEP by Truong Minh Tuan 20 Join: là từ khoá trong LINQ Nó giống như c pháp truy vấn Query in SQL Ngoài ra, c n c Left join,... interface c a LINQ, vì thế AsEnumerable method cho phép triển khai nhiều interface như thế LINQ STEP BY STEP by Truong Minh Tuan 12 Concat: là một extension method, và nó làm vi c trên c 2 IEnumerable collections Kết quả trả về là một collection với tất c elements LINQ STEP BY STEP by Truong Minh Tuan 13 Contains: trả về TRUE ho c FALSE Nó kiểm tra một element c nằm trong IEnumerable collections... c c thao t c: Insert, Update, Delete, View, Store Procedure (SP), Transaction LINQ to SQL chỉ support cho SQL Server, và bạn là người mới bắt đầu nghiên c u thì LINQ to SQL là sự lựa chọn tuyệt vời nhất LINQ STEP BY STEP by Truong Minh Tuan 29 Dưới đây, tôi hướng dẫn cho bạn từng bư c triển khai LINQ to SQL và c c thao t c Ở đây, tôi dùng Visual Studio 2012, SQL Server 2008 để th c hiện, bạn c ng c ... Tạo một Data Connection để map dữ liệu từ SQL Server, bằng menu trong Visual Studio: View / Server Explorer / Data Connections / Add Connection LINQ STEP BY STEP by Truong Minh Tuan 33 Bư c 05: Add LINQ to SQL LINQ STEP BY STEP by Truong Minh Tuan 34 Bư c 06: Chọn Table LopHoc từ Server Explorer đưa vào LINQ to SQL class LINQ STEP BY STEP by Truong Minh Tuan 35 Bư c 07: Th c hiện thao t c Hiển thị dữ... trí đó C c phần tử element phải tương ứng với vị trí c a nó, ngư c lại Index was out of range ElementAtOrDefault: tương tự như ElementAt() nhưng nó giải quyết vi c vị trí vượt quá giới hạn cho phép, không như ElementAt LINQ STEP BY STEP by Truong Minh Tuan 16 First: trả về element đầu tiên trong object C c object này không phân biệt kiểu First chỉ dùng đư c khi c c object đều c element, ngư c lại Error... dùng c c phiên bản như Visual Studio 2010, 2013, 2015 Bư c 01: Tôi tạo một C sở dữ liệu tương ứng bên dưới c tên là: Database: LINQtoSQL Table: LopHoc (IDLop, TenLop) LINQ STEP BY STEP by Truong Minh Tuan 30 Bư c 02: Tạo một Project mới File / New / Project LINQ STEP BY STEP by Truong Minh Tuan 31 Bư c 03: Đặt tên Project và đường dẫn cho Project LINQ STEP BY STEP by Truong Minh Tuan 32 Bư c 04:... SkipWhile: bạn nghiên c u theo ví dụ bên dưới LINQ STEP BY STEP by Truong Minh Tuan 26 Sum, Max, Min, Count, Average, OrderBy, Where, Descending, Ascending: tôi không nói rõ ở đây, vì thông qua c c ví dụ trên, bạn c thể tìm hiểu về c c từ khoá này, nó hoàn toàn giống như truy vấn SQL; t c nhiên, tôi làm vài ví dụ bên dưới để bạn c thể tìm hiểu thêm; LINQ STEP BY STEP by Truong Minh Tuan 27 LINQ STEP BY STEP ...M C L C MỞ ĐẦU LINQ LÀ GÌ? KIẾN TR C VÀ C C THÀNH PHẦN C A LINQ LINQ QUERIES (C# ) LINQ VÀ GENERIC TYPE 10 LINQ. .. đ c viết truy vấn LINQ, phù hợp cho bạn sinh viên, h c sinh theo h c ngành CNTT, đ c biệt bạn c { định theo nghiệp lập trình phần mềm, anh chị c { định tự h c lập trình theo c ng nghệ Microsoft... Microsoft C thể nói LINQ tảng bạn c { định h c phát triển phần mềm tảng Internet (website) Application (Form) Microsoft, trư c tiên bạn cho hội h c ngôn ngữ lập trình như: C, C+ +, C# , VB.NET – C#

Ngày đăng: 16/01/2016, 10:32

Từ khóa liên quan

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

Tài liệu liên quan