Microsoft Language Integrated Query (LINQ) offers developers a new way to query data using strongly-typed queries and strongly-typed results, common across a number of disparate data types including relational databases, .NET objects, and XML. By using strongly-typed queries and results, LINQ improves developer productivity with the benefits of IntelliSense and compile-time error checking.
LINQ to SQL is an object-relational mapping (ORM) framework that allows the direct 1-1 mapping of a Microsoft SQL Server database to .NET classes, and query of the resulting objects using LINQ
LINQ provide data access via the developers choice of language without using SQL. With in the context of the .Net plateform, LINQ is a set of extensions to the .Net Framework that encompass language integrated query, set, and transform operations.
LINQ is divided into three areas :
- LINQ to Objects – For in memory operations.
LINQ to ADO.Net – For Database operations, This again divided to three.
- LINQ to SQL – For working with SQL Server Data
- LINQ to Dataset – for working with datasets, thus supports any database engine if it is supported by Dataset.
- LINQ to Entities – for working with Microsoft’s Entity Framework.
- LINQ to XML – for working with XML Data.
The main namespace for LINQ is System.Linq, which provides classes and interfaces that supports queries that use LINQ.
The name space System.Data.Linq provides classes and interfaces that facilitates LINQ to SQL, and System.Xml.Linq facilitates LINQ to XML.
A key feature of LINQ is that it supports complete query capabilities for any collection that implements IEnumerable or IQueryable.