HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Foreword by Darryl Hogan, Architect Evangelist, Microsoft Corporation
Microsoft’s highly anticipated LINQ query technology makes it easy to retrieve any information programmatically from any data source, no matter where it comes from or how it’s stored. Using LINQ, developers can query objects, relational databases, XML documents, and ADO.NET datasets--and do it all directly from C# 3.0, leveraging the powerful capabilities of LINQ.
This is a definitive guide to getting real-world results with LINQ, using C# 3.0 and Visual Studio 2008. In LINQ Unleashed, Microsoft MVP Paul Kimmel covers every facet of LINQ programming, showing how LINQ can help you dramatically improve your productivity and build more reliable, maintainable applications.
Kimmel begins by reviewing the state-of-the-art C# programming techniques LINQ uses, including anonymous types, partial methods, and Lambda expressions. Next, using realistic examples and easy-to-adapt sample code, he details the most powerful new LINQ techniques for accessing objects, databases, and XML. You’ll gain a deep and practical understanding of how LINQ works “under the hood”--and learn how to do everything from selecting data through integrating XML with other data models.
Introduction 1
Part I Getting Ready for LINQ
1 Programming with Anonymous Types 5
2 Using Compound Type Initialization 29
3 Defining Extension and Partial Methods 61
4 yield return: Using .NET’s State Machine Generator 85
5 Understanding Lambda Expressions and Closures 97
6 Using Standard Query Operators 121
Part II LINQ for Objects
7 Sorting and Grouping Queries 137
8 Using Aggregate Operations 151
9 Performing Set Operations 167
10 Mastering Select and SelectMany 185
11 Joining Query Results 211
12 Querying Outlook and Active Directory 239
Part III LINQ for Data
13 Querying Relational Data with LINQ 265
14 Creating Better Entities and Mapping Inheritance and Aggregation 289
15 Joining Database Tables with LINQ Queries 309
16 Updating Anonymous Relational Data 349
17 Introducing ADO.NET 3.0 and the Entity Framework 383
Part IV LINQ for XML
18 Extracting Data from XML 415
19 Comparing LINQ to XML with Other XML Technologies 437
20 Constructing XML from Non-XML Data 453
21 Emitting XML with the XmlWriter 463
22 Combining XML with Other Data Models 469
23 LINQ to XSD Supports Typed XML Programming 485
Index
Programming with LINQ to XML for Objects
Writing LINQ Queries with the Entity Framework
Programming with Anonymous Types in C#
Introduction 1
Part I Getting Ready for LINQ
1 Programming with Anonymous Types 5
2 Using Compound Type Initialization 29
3 Defining Extension and Partial Methods 61
4 yield return: Using .NET’s State Machine Generator 85
5 Understanding Lambda Expressions and Closures 97
6 Using Standard Query Operators 121
Part II LINQ for Objects
7 Sorting and Grouping Queries 137
8 Using Aggregate Operations 151
9 Performing Set Operations 167
10 Mastering Select and SelectMany 185
11 Joining Query Results 211
12 Querying Outlook and Active Directory 239
Part III LINQ for Data
13 Querying Relational Data with LINQ 265
14 Creating Better Entities and Mapping Inheritance and Aggregation 289
15 Joining Database Tables with LINQ Queries 309
16 Updating Anonymous Relational Data 349
17 Introducing ADO.NET 3.0 and the Entity Framework 383
Part IV LINQ for XML
18 Extracting Data from XML 415
19 Comparing LINQ to XML with Other XML Technologies 437
20 Constructing XML from Non-XML Data 453
21 Emitting XML with the XmlWriter 463
22 Combining XML with Other Data Models 469
23 LINQ to XSD Supports Typed XML Programming 485
Index