- Overview of new features for LINQ in .NET 3.0â€”partial methods, expressions, anonymous types, initializers, and implicitly typed local variables
- Accessing in-memory data structures using LINQâ€”lists, arrays, and dictionaries
- Directly querying the collections and filtering the required values without using powerful filtering, ordering, and grouping capabilities
- Creating and manipulating XML data through .NET using XElement and XAttribute
- Creating and navigating XML trees using Functional Construction
- Importing and exporting data from dictionaries, databases, objects, and CSV files
- Creating and manipulating the database objects using the DataContext object
- Working with stored procedures, user-defined functions, handling concurrency conflicts, and transactions during database updates
- Working with .NET framework data providers and DataSets
- Using DataSet for easier and faster querying of cached data
- Working with typed and un-typed XML trees using XSD
- Examining standard query operators provided by LINQ and using them to query data sources
- Implementing your own standard query operators
- Building an ASP.NET web application
Chapter 1 looks at the overall features of LINQ, and gives an overview of different operators provided by LINQ to operate on objects, XML, relational databases, etc.
Chapter 2 examines LINQ to Objects, which means that you can use LINQ to query objects in a collection. Using this feature, you can access in-memory data structures using LINQ. You can directly query collections, and filter out required values without using powerful filtering, ordering, and grouping capabilities.
Chapter 3 looks at LINQ to XML. It is a new in-memory XML programming API to work against XML data. There are different ways of creating XML trees in .NET. LINQ to XML is the new method of creating and manipulating XML data through .NET. The properties and methods of LINQ help in navigating and manipulating XML elements and attributes.
Chapter 4, which covers LINQ to SQL, takes care of translating LINQ expressions into equivalent T-SQL, passing it on to the database for execution, and then returning the results back to the calling application. It reduces programming time a lot, and comes with two different design-time tools, which are used for converting the relational database objects into object definitions. It also has the ability to create databases, and database objects.
Chapter 5 examines LINQ to DataSets. An ADO.NET DataSet provides a disconnected data source environment for applications. It can be used with multiple data sources. The DataSet has the flexibility of handling data locally in cache memory where the application resides. The application can continue working with a DataSet when it is disconnected from the source and is not dependent on the availability of the data source. The DataSet maintains information about the changes made to data so that updates can be tracked and sent back to the database as soon as the data source is available or reconnected.
Chapter 6 covers LINQ to XSD. It enhances XML programming by adding the feature of typed views on un-typed XML trees. LINQ to XSD gives a better programming environment by providing the object models generated from XML schemas. This is called typed XML programming.
Chapter 7 looks at standard query operators provided by LINQ, and how you can use some of them against different data sources.
This book gets you started with LINQ and shows how it will make your programming life easier by making use of new features from the .NET Framework 3.0. This book is split into seven chapters, each of which is dedicated to presenting a feature of LINQ and its usage in real-life scenarios.
Language Integrated Query (LINQ) is a new feature in Visual Studio 2008 that extends its query capabilities, using C# and Visual Basic. Visual Studio 2008 comes with
LINQ provider assemblies that enable the use of LINQ with data sources such as in-memory collections, SQL relational databases, ADO.NET Datasets, XML documents, etc.
In Visual Studio 2008, Visual C# and Visual Basic are the languages that implement the LINQ language extensions. LINQ language extensions use the new standard query operators API, which is the query language for any collection that implements IEnumerable<T>.