Báo cáo thực tập ngành Quản trị kinh doanh, quản trị khách sạn, lữ hành tại trường CĐ Văn hóa Nghệ Thuật và Du Lịch Sài Gòn.
Viết thuê báo cáo thực tập tốt nghiệp ZALO 093 189 2701
Children’s Voices for Human Rights Newsletter – Issue no.68hrfmedia
To enhance the knowledge of child rights defenders, we bring in quarterly magzine named " Children’s Voices for Human Rights " in Tamil language making it easy even for the common man to know about different views put forth by various scholars, fact finding reports, recent developments and important judgements related to child rights issues.
This document provides an agenda for a Microsoft developer event covering topics for different audiences including small business owners, IT professionals, developers, and technology providers. The event includes sessions on .NET tools and technologies, business solutions, and technical content directly from Microsoft specialists. It also lists upcoming Microsoft events and resources for developers.
Este documento proporciona una introducción a LINQ (Language Integrated Query), que permite realizar consultas integradas en el lenguaje de programación. Explica cómo LINQ permite realizar consultas sobre objetos en memoria, bases de datos y XML de forma similar a SQL. También describe características como tipos implícitos, inicializadores de objetos, métodos de extensión y expresiones lambda.
This document discusses LINQ and the ADO.NET Entity Framework. It describes how LINQ provides a unified approach for accessing heterogeneous data sources like objects, XML, relational data, and more. The ADO.NET Entity Framework is the conceptual model for developing applications with LINQ to Entities, which uses LINQ to access Entity Framework data. LINQ to SQL and LINQ to Entities are designed for different scenarios when querying and updating data.
The document provides an overview of Daniel Egan's professional experience including his roles as a Microsoft Regional Director, Microsoft MVP for ASP.Net, Chief Architect at Odyssey Consulting Group, author, instructor, and his involvement with various .Net user groups. It then outlines topics to be covered including object relational mappers, language enhancements in VB.Net and C# 3.0, LINQ and LINQ to SQL.
The document discusses the LINQ (Language Integrated Query) project in .NET, which allows querying of objects, relational data, and XML in a unified manner. LINQ introduces standard query operators and language features in C# 3.0 and VB 9.0 that enable querying of any .NET collection. It also discusses DLinq for querying relational databases and mapping results to objects, and XLinq for querying XML in a functional, element-centric manner.
The document discusses the impedance mismatch between object-oriented programming and relational databases. It notes key differences in their type systems, architectural styles, structural relationships, identity constructs, transaction boundaries, and query capabilities. Object-relational mapping (ORM) is introduced as a technique for converting between incompatible data types in databases and object-oriented languages. LINQ provides language-integrated querying for relational data through DLINQ, mapping tables to classes and allowing queries over strongly-typed results.
LINQ permite realizar consultas a datos de manera unificada en los lenguajes .NET mediante una sintaxis similar a SQL. LINQ no impone una arquitectura específica y facilita el acceso a diferentes dominios de datos como bases de datos, XML y colecciones. Existen implementaciones como LINQ to Objects, LINQ to SQL, LINQ to Entities y LINQ to XML para consultar datos en memoria, bases de datos relacionales y documentos XML.
1) The document discusses LINQ (Language Integrated Query), which allows querying of data from various sources using .NET languages like C# and VB in a strongly typed manner.
2) LINQ supports CRUD (create, read, update, delete) operations on data sources like SQL Server through LINQ to SQL.
3) The document provides examples of using LINQ to perform basic CRUD operations and queries on a database.
Báo cáo thực tập ngành Quản trị kinh doanh, quản trị khách sạn, lữ hành tại trường CĐ Văn hóa Nghệ Thuật và Du Lịch Sài Gòn.
Viết thuê báo cáo thực tập tốt nghiệp ZALO 093 189 2701
Children’s Voices for Human Rights Newsletter – Issue no.68hrfmedia
To enhance the knowledge of child rights defenders, we bring in quarterly magzine named " Children’s Voices for Human Rights " in Tamil language making it easy even for the common man to know about different views put forth by various scholars, fact finding reports, recent developments and important judgements related to child rights issues.
This document provides an agenda for a Microsoft developer event covering topics for different audiences including small business owners, IT professionals, developers, and technology providers. The event includes sessions on .NET tools and technologies, business solutions, and technical content directly from Microsoft specialists. It also lists upcoming Microsoft events and resources for developers.
Este documento proporciona una introducción a LINQ (Language Integrated Query), que permite realizar consultas integradas en el lenguaje de programación. Explica cómo LINQ permite realizar consultas sobre objetos en memoria, bases de datos y XML de forma similar a SQL. También describe características como tipos implícitos, inicializadores de objetos, métodos de extensión y expresiones lambda.
This document discusses LINQ and the ADO.NET Entity Framework. It describes how LINQ provides a unified approach for accessing heterogeneous data sources like objects, XML, relational data, and more. The ADO.NET Entity Framework is the conceptual model for developing applications with LINQ to Entities, which uses LINQ to access Entity Framework data. LINQ to SQL and LINQ to Entities are designed for different scenarios when querying and updating data.
The document provides an overview of Daniel Egan's professional experience including his roles as a Microsoft Regional Director, Microsoft MVP for ASP.Net, Chief Architect at Odyssey Consulting Group, author, instructor, and his involvement with various .Net user groups. It then outlines topics to be covered including object relational mappers, language enhancements in VB.Net and C# 3.0, LINQ and LINQ to SQL.
The document discusses the LINQ (Language Integrated Query) project in .NET, which allows querying of objects, relational data, and XML in a unified manner. LINQ introduces standard query operators and language features in C# 3.0 and VB 9.0 that enable querying of any .NET collection. It also discusses DLinq for querying relational databases and mapping results to objects, and XLinq for querying XML in a functional, element-centric manner.
The document discusses the impedance mismatch between object-oriented programming and relational databases. It notes key differences in their type systems, architectural styles, structural relationships, identity constructs, transaction boundaries, and query capabilities. Object-relational mapping (ORM) is introduced as a technique for converting between incompatible data types in databases and object-oriented languages. LINQ provides language-integrated querying for relational data through DLINQ, mapping tables to classes and allowing queries over strongly-typed results.
LINQ permite realizar consultas a datos de manera unificada en los lenguajes .NET mediante una sintaxis similar a SQL. LINQ no impone una arquitectura específica y facilita el acceso a diferentes dominios de datos como bases de datos, XML y colecciones. Existen implementaciones como LINQ to Objects, LINQ to SQL, LINQ to Entities y LINQ to XML para consultar datos en memoria, bases de datos relacionales y documentos XML.
1) The document discusses LINQ (Language Integrated Query), which allows querying of data from various sources using .NET languages like C# and VB in a strongly typed manner.
2) LINQ supports CRUD (create, read, update, delete) operations on data sources like SQL Server through LINQ to SQL.
3) The document provides examples of using LINQ to perform basic CRUD operations and queries on a database.
The document discusses using LINQ (Language Integrated Query) to do more with less. It mentions the Babel fish from Hitchhiker's Guide to the Galaxy and using LINQ to query databases and XML. Developing applications using LINQ allows writing code once that can be read many times, improving efficiency. While Microsoft has many employees, with LINQ smaller companies can accomplish tasks that previously required more resources. The presentation reviews LINQ and its benefits, addresses tool and framework support and pitfalls, and concludes by discussing next steps and training opportunities.
The document appears to contain code snippets in C# and Visual Basic showing various language features and concepts such as: delegates, lambda expressions, LINQ queries, extension methods, and the difference between IEnumerable and IQueryable interfaces. It demonstrates translating code between the two languages.
1. I.Tại sao lại LINQ ra đời?
Đã lâu lắm rồi, hơn 2 thập niên, ngành công nghiệp phần mềm mới chứng kiến một cuộc
đổi thay mang tính bước ngoặc về mặt ngôn ngữ. Đó chính là LINQ, một cuộc cách tân
khá táo bạo. Được gọi là "Back to the future", LINQ mang hơi hướng của một ngôn ngữ
lập trình KHÔNG hướng đối tượng. Thật lạ, Paradigm OO đã đi đến điểm ổn định cao
nhất và tưởng rằng nó sẽ chết trên đỉnh vinh quang đó. Nhưng không, LINQ thổi vào đó
một luồng gió mới. Thật ra, bản chất của nó chính là thống nhất sự khác biệt giữa hai mô
hình : Đối tượng và Dữ liệu. Sự khác biệt này chính là rào cản lớn nhất mà trong vòng
mấy chục năm qua ngành công nghiệp phần mềm phải "sống chung với lũ". Một cách
nôm na, giờ đây, chúng ta chỉ cần biết một ngôn ngữ mà thôi, không phải biết thêm SQL,
XPath...
Đi xa hơn sự thống nhất về cách thức truy vấn dữ liệu, các công nghệ hỗ trợ đằng sau
LINQ như ORM đã làm cho việc lập trình trở nên đơn giản hơn, gọn gàng hơn.
Nói một cách dễ hình dung, sự xung đột giữa 2 paradigm OO và Data trông giống như sự
xung đột giữa các hệ tư tưởng và nó dai dẵng như cuộc xung đột của người Palestine và
Israel. Nếu sự "Trung gian hòa giải" để giúp 2 bên "ngồi lại với nhau" của Mỹ, Châu Âu,
Nga hay cả Liên Hiệp Quốc đều thất bại thì chúng ta cũng có hàng loạt các công cụ trung
gian ORM của hãng thứ ba như Hibernate, ORM, BizBlox,...chưa đủ tạo ra sự yên tâm.
Các ORM tool này rốt cục cũng chỉ là tạm thời - vẫn không thể nào giải quyết được tận
gốc rễ của vấn đề. Thậm chí dự án ObjectSpace của gã khổng lồ Microsoft vẫn đã chết
ngay khi chưa kịp ra đời. Người ta cố gắng giải quyết vấn đề này bằng cách khác, sáng
tạo hơn. Và có vẻ như LINQ chính là một giải pháp hay. Một phương pháp luận sáng tạo
đã được sử dụng: Trời không chịu đất thì đất chịu trời. Với LINQ, chúng ta sẽ thấy sự
"nhượng bộ" rõ ràng của OO. Nó cố gắng tiếp cận Data, nó đồng thời tự nâng cao năng
lực của chính nó.
-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
2. 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 đối tượng, CSDL và XML.
-Truy vấn dữ liệu đối tượng trong bộ nhớ
Dữ liệu cần phải đổ vào bộ nhớ để xử lý, nhưng một khi tách khỏi nơi gốc của nó thì khả
năng truy vấn rất kém. Bạn có thể dễ dàng truy vấn thông tin khách hàng móc nối với
thông tin đơn hàng của họ từ CSDL SQL Server nhưng không dễ gì thực hiện tương tự
với thông tin trong bộ nhớ. Trong môi trường .NET, thông tin (trong bộ nhớ) thường
được thể hiện ở dạng các đối tượng và trước LINQ, không có cách nào để móc nối các
đối tượng hay thực hiện bất kỳ thao tác truy vấn nào. LINQ chính là giải pháp cho vấn đề
này.
-Với Microsoft .NET platform, ngôn ngữ hỗ trợ chính đó chính là C# và VB.NET.
Những người lập trình viên họ thường gặp rắc rối, và cảm thấy khó chịu với việc truy cập
dữ liệu ở những nguồn khác nhau. Đặc biệt là 2 loại dữ liệu XML và CSDL.Với CSDL là
đông đảo nhất về dữ liệu lưu trữ.
Các vấn đề về truy suất dữ liệu như sau:
1 - Chúng ta không lập trình tương tác với CSDL tại cấp độ native language. Vì thế lỗi
thường khó phát hiện rõ. Khó khăn trong việc quản lý lỗi xảy ra.
2 - Kiểu dữ liệu khác nhau trong mỗi nguồn dữ liệu ở XML và CSDL. Đặc biệt date và
time.
Chính các nhà phát triển ở Microsoft đưa ra 1 nền tảng mới trong việc truy vấn dữ liệu ở
bất kể các nguồn khác nhau(Object, XML, CSDL). Đó là LINQ, đây là công nghệ mà hổ
trợ cơ chế truy vấn dữ liệu ở tất cả các kiểu. Những kiểu nay bao gồm mãng(List,
Vector), XML, CSDL và hơn thế nữa.
Điều quan trọng nhất, LINQ là tất cả về truy vấn, kết quả sau khi truy vấn có thể là tập
hợp các đối tượng cùng loại, có thể là 1 đối tượng đơn, có thể là tập hợp con của các field
từ 1 đối tượng. 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.
II.LINQ là gì ?
Theo định nghĩa trên thư viên MSDN của Microsoft LINQ là một tập hợp các phần mở
rộng của .Net Frame Work. Nó bao gồm ngôn ngữ tích hợp truy vấn, thiếp lập và chuyển
đổi hoạt động. Nó mở rông C# và Visual Basic với cú pháp ngôn ngữ bản địa cho các
truy vấn và cung cấp các thư viện lớp để tận dụng những khả năng thuận lợi của nó.
III.Vậy LINQ bao gồm những gì ?
Theo wikipedia :
3. Kiến trúc của LINQ trong. Net Framework 3.5
Toán tử operator chuẩn:
1.Select / SelectMany 2.Where
3.Sum / Min / Max / Average / Aggregate 4.Join / GroupJoin
5.Take / TakeWhile 6.Skip / SkipWhile
7.OfType 8.Concat
9.OrderBy / ThenBy 10.Reverse
11.GroupBy 12.Distinct
13.Union / Intersect / Except 14.EqualAll
15.First / FirstOrDefault / Last / LastOrDefault 16.Single
17.ElementAt 18.Any / All / Contains
19.Count
1.Select / SelectMany Các câu Chọn thực hiện một dự vào bộ sưu tập để chọn tất cả các thành viên dữ liệu
tạo nên các đối tượng hoặc một tập hợp con của nó. Các toán tử SelectMany thực hiện một lần để chiếu
nhiều-( "lồng" nghĩa là), nếu các đối tượng trong bộ sưu tập có một bộ sưu tập như một thành viên dữ liệu,
SelectMany có thể được dùng để chọn toàn bộ phụ thu. Người sử dụng nguồn cung cấp một chức năng,
như là một đại biểu, các dự án mà các thành viên dữ liệu. Lựa chọn tạo ra một đối tượng của một kiểu khác
nhau, trong đó có cả một số hoặc nhiều thành viên như là dữ liệu như là lớp gốc. Lớp phải đã được xác Ở
đâu
2.Where Các nhà điều hành ở đâu cho phép định nghĩa của một tập các quy tắc làm vị được đánh giá cho
từng đối tượng trong bộ sưu tập, trong khi các đối tượng đó không phù hợp với quy luật sẽ được lọc đi.
3.Sum / Min / Max / Average / Aggregate Các toán tử phải mất một predicate để lấy một giá trị nhất định
số từ mỗi thành phần trong bộ sưu tập và sử dụng nó để tìm tổng hợp, tối thiểu, tối đa, hoặc tổng hợp các
giá trị trung bình của tất cả các yếu tố trong bộ sưu tập tương ứng.
4.Join / GroupJoin Các toán tử tham gia thực hiện một bên tham gia vào hai bộ sưu tập, dựa trên kết hợp
các phím cho từng đối tượng trong bộ sưu tập. Phải mất hai chức năng là đại diện, một cho mỗi bộ sưu tập,
mà nó thực thi trên mỗi đối tượng trong bộ sưu tập để lấy chìa khóa từ đối tượng. Nó cũng mất một đại diện
thông qua đó người dùng xác định các yếu tố dữ liệu đó, từ hai yếu tố phù hợp, nên được sử dụng để tạo
ra các đối tượng kết quả. Các nhà điều hành GroupJoin thực hiện một nhóm tham gia. Giống như các nhà
4. điều hành chọn, kết quả của một gia đang instantiations của một tầng lớp khác nhau, với tất cả các thành
viên dữ liệu của cả hai loại của các đối tượng nguồn gốc hoặc một tập hợp con của họ.
5.Take / TakeWhile Hãy chọn các nhà khai thác các đối tượng n đầu tiên từ một bộ sưu tập, trong khi các
nhà điều hành TakeWhile, mà phải mất một predicate, chọn những đối tượng phù hợp với predicate.
6.Skip / SkipWhile Bỏ qua và SkipWhile các nhà khai thác được bổ sung của Take và TakeWhile - họ bỏ
qua các đối tượng n đầu tiên từ bộ sưu tập một, hoặc những đối tượng phù hợp với một predicate (đối với
trường hợp của SkipWhile).
7.OfType Các toán tử OfType được sử dụng để chọn các phần tử của một loại nhất định.
8.Concat Các toán tử concat concatenates hai bộ sưu tập.
9.OrderBy / ThenBy Các toán tử OrderBy được sử dụng để xác định phân loại chính đặt hàng của các yếu
tố trong bộ sưu tập một theo một số trọng điểm. Mặc định là sắp đặt thứ tự tăng dần, để đảo ngược trật tự,
các nhà điều hành OrderByDescending là để được sử dụng. ThenBy và ThenByDescending xác định tiếp
theo đặt hàng của các yếu tố. Chức năng để trích xuất các giá trị quan trọng từ đối tượng được xác định bởi
người sử dụng như là một đại diện.
10.Reverse Ngược lại toán tử một bộ sưu tập đảo ngược.
11.GroupBy Các toán tử GroupBy mất một đại biểu rằng chất chiết xuất một giá trị khóa và trả về một bộ
sưu tập của IGrouping<Key, Values> đối tượng IGrouping<Key, Values> cho mỗi giá trị quan trọng khác
biệt. Các đối tượng IGrouping sau đó có thể được sử dụng để liệt kê tất cả các đối tượng cho một giá trị
đặc biệt quan trọng.
12.Distinct Các toán tử riêng biệt loại bỏ trường hợp lặp của một giá trị quan trọng từ một bộ sưu tập. Chức
năng để lấy giá trị quan trọng là để được cung cấp như một đại biểu.
13.Union / Intersect / Except Các toán tử được sử dụng để thực hiện một công đoàn, giao lộ và các hoạt
động khác nhau trên hai trình tự, tương ứng.
14.EqualAll Các toán tử EqualAll kiểm tra xem tất cả các yếu tố trong hai bộ sưu tập đều được bình đẳng.
15.First / FirstOrDefault / Last / LastOrDefault Các toán tử phải mất một predicate. Các toán tử đầu tiên trở
về các yếu tố đầu tiên mà sản lượng làm vị đúng hoặc ném một ngoại lệ nếu không có gì phù hợp. Các toán
tử FirstOrDefault cũng giống như các nhà khai thác đầu tiên ngoại trừ việc nó trả về giá trị mặc định cho
kiểu phần tử (thường là một tham chiếu null) trong trường hợp không có gì phù hợp với predicate. Các toán
tử cuối truy nguyên tố cuối cùng để phù hợp với làm vị, hoặc ném một ngoại lệ trong trường hợp không có
gì phù hợp. LastOrDefault Các trả về giá trị phần tử mặc định nếu không có gì phù hợp.
16.Single Các toán tử đơn mất một predicate và trả về các yếu tố đó phù hợp với predicate. Một trường
hợp ngoại lệ được ném nếu không có hoặc nhiều hơn một yếu tố phù hợp với predicate.
17.ElementAt Các nhà điều hành ElementAt lấy phần tử tại một chỉ số được đưa ra trong bộ sưu tập.
18.Any / All / Contains Các toán tử Bất kỳ kiểm tra nếu có bất kỳ yếu tố trong bộ sưu tập phù hợp với
predicate. Nó không chọn các phần tử, nhưng trả về đúng cho một trận đấu. Tất cả các toán tử kiểm tra
xem tất cả các yếu tố phù hợp với predicate. Chứa các toán tử kiểm tra nếu bộ sưu tập có một giá trị nhất
định.
19.Count Các toán tử Count đếm số lượng các yếu tố trong bộ sưu tập được.
The Standard Query operator API cũng chỉ rõ một số nhà khai thác chuyển đổi một bộ sưu tập vào loại hình
khác: [1]
5. AsEnumerable: chuyển đổi các bộ sưu tập để loại IEnumerable<T>
ToQueryable: chuyển đổi các bộ sưu tập để loại IQueryable<T>
ToArray: chuyển đổi các bộ sưu tập vào một mảng.
ToList: chuyển đổi các bộ sưu tập để loại IList<T>
ToDictionary: chuyển đổi các bộ sưu tập để IDictionary<K, T> loại IDictionary<K, T> lập chỉ mục bằng phím
K.
ToLookup: chuyển đổi các bộ sưu tập để ILookup<K, T> loại ILookup<K, T> lập chỉ mục bằng phím K.
Cast: chuyển đổi một tổ chức phi chung IEnumerable bộ sưu tập vào một trong các IEnumerable<T> bởi
mỗi yếu tố để T loại. Ném một ngoại lệ cho các kiểu không tương thích.
OfType: chuyển đổi một tổ chức phi chung IEnumerable bộ sưu tập vào một trong các IEnumerable<T> Chỉ
có yếu tố của loại T được bao gồm.
Các toán tử tìm kiếm sẽ được xác định trong giao diện IEnumerable<T> như phương pháp khuyến khích
chung chung, và triển khai thực hiện cụ thể được cung cấp trong lớp Sequence Kết quả là, lớp học nào mà
thực hiện các giao diện IEnumerable<T> có quyền truy cập đến những phương pháp này và là queryable.
LINQ cũng định nghĩa một tập các chung Func đại biểu, trong đó xác định các loại đại biểu xử lý bằng các
phương pháp truy vấn LINQ. Bất kỳ chức năng bọc trong một đoàn Func có thể được sử dụng bởi LINQ.
Mỗi phương thức trả về một đối tượng thực hiện các giao diện IEnumerable<T> do đó, đầu ra của một
người có thể được sử dụng như các đầu vào khác, kết quả composability truy vấn. Chức năng, tuy nhiên,
có lazily đánh giá, nghĩa là, các bộ sưu tập được liệt kê chỉ khi kết quả được lấy. Đếm được tạm dừng ngay
sau khi trận đấu được tìm thấy, và các đại biểu đánh giá trên nó. Khi một đối tượng tiếp theo trong bộ sưu
tập kết quả được lấy ra, việc liệt kê các nguồn thu được tiếp tục vượt ra ngoài yếu tố đã được đánh giá. Tuy
nhiên, hoạt động nhóm, như GroupBy và OrderBy, cũng như Sum, Min, Max, trung bình và tổng hợp, yêu
cầu dữ liệu từ tất cả các yếu tố trong bộ sưu tập, và một lực lượng đánh giá mong muốn. LINQ không một
tính năng tôi ưu hoa truy vấn và các nhà điều hành tìm kiếm sẽ được đánh giá theo thứ tự chúng được viện
dẫn. Các phương pháp LINQ được compilable trong NET Framework 2.0.,
Phần mở rộng Ngôn ngữ
Trong khi LINQ chủ yếu thực hiện như một thư viện cho. NET Framework 3.5, nó cũng định nghĩa một tập
các phần mở rộng ngôn ngữ có thể được thực hiện bởi tùy chọn ngôn ngữ để thực hiện truy vấn một ngôn
ngữ lớp đầu tiên xây dựng và cung cấp đường cú pháp để viết các truy vấn. Những phần mở rộng ngôn
ngữ đã bước đầu được thực hiện trong C # 3.0, VB 9,0 và Oxygene, với các ngôn ngữ khác như F # và
Nemerle có hỗ trợ công bố sơ bộ. Các phần mở rộng ngôn ngữ bao gồm: [2]
Truy vấn cú pháp: Một là ngôn ngữ Việt để chọn một cú pháp truy vấn rằng nó sẽ nhận ra nguyên bản.
Những từ khóa ngôn ngữ phải được dịch bởi trình biên dịch cho các cuộc gọi phương pháp thích hợp LINQ.
Các ngôn ngữ có thể thực hiện sắp xếp lại nhà điều hành và tối ưu hóa khác ở mức từ khóa.
Ngầm đánh máy biến: nâng cao này cho phép các biến được khai báo mà không có chỉ định các loại của
họ. Các ngôn ngữ C # 3.0 và Oxygene tuyên bố chúng với những từ khóa var Trong VB9.0, việc sử dụng
các từ khóa Dim mà không loại tờ khai hoàn thành việc kê khai như vậy. Các đối tượng này vẫn còn mạnh
mẽ; cho các đối tượng sử dụng các trình biên dịch suy luận kiểu suy ra loại của các biến. Điều này cho
phép kết quả của các truy vấn được chỉ định và kết quả của họ được xác định mà không khai báo kiểu của
các biến trung gian.
Chưa xác định người loại: loại Chưa xác định người cho phép các lớp học, có chứa dữ liệu khai báo thành
viên duy nhất, để được suy ra bởi trình biên dịch. Điều này là hữu ích cho việc chọn và tham gia vận hành,
các loại quả có thể khác biệt với các loại của các đối tượng ban đầu. Trình biên dịch này sử dụng kiểu suy
luận để xác định các lĩnh vực chứa trong các lớp học và tạo ra accessors và mutators cho các lĩnh vực này.
6. Đối tượng Initializer: initializers Object cho phép một đối tượng được tạo ra và khởi tạo trong một phạm vi
duy nhất, điều này cho phép tạo ra các đại biểu rằng các lĩnh vực chiết xuất từ một đối tượng, tạo một đối
tượng mới và gán dữ liệu để trích xuất các lĩnh vực của đối tượng mới trong một tuyên bố đơn , như là cần
thiết để chọn và tham gia vận hành.
Biểu thức Lambda: Lambda biểu thức được sử dụng để tạo ra các đại biểu nội tuyến với các mã khác. Điều
này cho phép các predicates và chức năng khai thác được ghi nội tuyến với các truy vấn.
Ví dụ, trong truy vấn để chọn tất cả các đối tượng trong bộ sưu tập một với SomeProperty ít hơn 10,
int someValue = 5;
var results = from c in someCollection
let x = someValue * 2
where c.SomeProperty < x
select new {c.SomeProperty, c.OtherProperty};
foreach (var result in results)
{
Console.WriteLine(result);
}
các loại biến kết quả, c và tất cả các kết quả được suy ra bởi trình biên dịch - giả sử SomeCollection là
IEnumerable<SomeClass> c sẽ được SomeClass kết quả sẽ được IEnumerable<SomeOtherClass> và kết
quả sẽ được SomeOtherClass nơi SomeOtherClass sẽ là một trình biên dịch tạo ra lớp với SomeProperty
chỉ và tài sản OtherProperty và giá trị của họ thiết lập từ các điều khoản tương ứng của các đối tượng
nguồn. Các Toán tử sau đó được dịch ra các cuộc gọi phương thức như:
IEnumerable<SomeOtherClass> results =
SomeCollection.Where
(
c => c.SomeProperty < (SomeValue * 2)
)
.Select
(
c => new {c.SomeProperty, c.OtherProperty}
)
foreach (SomeOtherClass result in results)
7. {
Console.WriteLine(result.ToString());
}
LINQ cung cấp:
- LINQ to Objects
- LINQ to XML
- LINQ to SQL
- LINQ to DataSets
- Other providers
-LINQ to Objects: Các nhà cung cấp được sử dụng để truy vấn trong bộ sưu tập
bộ nhớ, sử dụng công cụ truy vấn thực hiện tại địa phương của LINQ. Các mã được tạo ra
bởi nhà cung cấp này đề cập đến việc thực hiện các nhà khai thác truy vấn tiêu chuẩn như
được định nghĩa trong các lớp học Sequence và cho phép các bộ sưu tập Enumerable<T>
được truy vấn tại địa phương. Hiện hành thực hiện các LINQ to Đối tượng sử dụng ví dụ
như O (n) tuyến tính và tìm tra cứu đơn giản, và không phải là tối ưu hóa cho các truy
vấn phức tạp
- LINQ to XML: Các LINQ to XML cung cấp dịch vụ chuyển đổi một tài liệu
XML với một bộ sưu tập của XElement đối tượng, mà sau đó truy vấn đối với việc sử
dụng động cơ thực hiện tại địa phương được cung cấp như một phần của việc thực hiện
các nhà điều hành truy vấn tiêu chuẩn [5.]
- LINQ to SQL: Các LINQ to SQL cho phép các nhà cung cấp LINQ sẽ được sử
dụng để truy vấn SQL Server cũng như cơ sở dữ liệu SQL Server Compact cơ sở dữ liệu.
Kể từ khi dữ liệu SQL Server nằm trên máy chủ từ xa, và bởi vì nó đã bao gồm một công
cụ truy vấn, LINQ to SQL không sử dụng động cơ của LINQ truy vấn. Thay vào đó, nó
chuyển đổi một truy vấn LINQ cho một truy vấn SQL là sau đó gửi đến SQL Server cho
chế biến Tuy nhiên, kể từ SQL Server lưu trữ các dữ liệu như dữ liệu quan hệ và làm việc
với LINQ dữ liệu đóng gói trong các đối tượng., Hai đại diện phải được ánh xạ với nhau.
Vì lý do này, LINQ to SQL cũng định nghĩa khuôn khổ lập bản đồ. Lập bản đồ này được
thực hiện bằng cách xác định các lớp học tương ứng với các bảng trong cơ sở dữ liệu, và
có chứa tất cả hoặc một tập hợp con của các cột trong bảng dữ liệu như là các thành viên
Thư này, cùng với mô hình quan hệ khác chẳng hạn như các thuộc tính khóa chính được
quy định sử dụng LINQ to SQL-thuộc tính được xác định. Ví dụ
[Table(Name="Customers")]
public class Customer
{
[Column(IsPrimaryKey = true)]
public int CustID;
[Column]
public string CustName;
}
Hoàng Trung Kiên_THB(^_^)