LINQ for dummies - an overview
Why do we need LINQ?
Most of us would have wrote code to access data from
different data sources a database, in memory objects ,
XML files or from other formats. We have different
guidelines, architectures and methods to process and
retrieve these data collection. For a data control in
form it is immaterial whether the data is from XML or
any other data sources. We have many relational OO
databases but there always the gap between the data
and its processing in Objects in any modern
languages.
Is LINQ the Holy Grail?
I can’t decide on that. But LINQ tries to fill the
vacuum between the datasources and their successful
interpretation in Objects. With LINQ, Microsoft’s
intention was to provide a solution for the problem of
object-relational mapping, as well as to simplify the
interaction between objects and data sources. LINQ
eventually evolved into a general-purpose
language-integrated querying toolset. This toolset can
be used to access data coming from in-memory objects
(LINQ to Objects), databases (LINQ to SQL), XML
documents (LINQ to XML), a file-system, or any other
source.
LINQ can be used to access any type of object or
datasource. The syntax remains the same. Previously we
had to use different methods like ADO .Net. XPath, IO packages etc to retrieve data ( ok still we
can use these methods and in many cases I still prefer
them over LINQ)
Broadly classifying we have three major categories of
LINQ
-
LINQ to Objects,
-
LINQ to SQL,
-
LINQ to XML
Don’t worry there are other categories like LINQ to
datasets. LINQ to Entities ( with ADO .net entity framework). In Visual Studio you can
write LINQ queries in Visual Basic or C# with SQL
Server databases, XML documents, ADO .NET Datasets,
and any collection of objects that supports
IEnumerable or the generic IEnumerable(T)
interface. In
short .NET Language-Integrated Query defines a set of general
purpose standard query operators that allow traversal, filter, and projection
operations to be expressed in a direct yet
declarative way in any .NET -based programming language. Third
parties are also free to replace the standard query
operators with their own implementations that provide
additional services such as remote evaluation, query
translation, optimization, and so on. By adhering to
the conventions of the LINQ pattern, such implementations enjoy the same language
integration and tool support as the standard query
operators.
Next – LINQ in action ...