Microsoft upcoming .NET 3.5 and C# 3.0 have support for Language
Integrated Queries (LINQ). This gives C# and VB users a
SQL-like syntax right in the language to access databases
directly. For example, this is now valid C#:

There is another provider for creating and consuming XML
data: LINQ
to XML. The LINQ distribution comes with a nice sample
where many of the samples from the XQuery specification have
been rewritten into C# with LINQ with code that is roughly the
same size (which sadly, I can not find online to point to).

Luckily, we have implementations for both of these in Mono.

And finally there are providers for databases. Microsoft
ships one that will integrate natively with Microsoft SQL.

Unlike the XML and in-memory providers, the SQL providers
are more complicated as they need to turn high-level
operations into optimized SQL statements. Unlike many object
to database mapping systems that produce very verbose SQL
statements LINQ is designed to provide a very efficient
representation.

The Db_Linq is an
open source project to create a LINQ provider for other
databases. The project is lead by George Moudry and so far
has providers for PostgreSQL, Oracle and Mysql.

George keeps a blog here where you can
track the development of DbLinq.

Thanks to Bryan for pointing me out to this fantastic piece
of code.

Mono users on Linux will now be able to use LINQ with open
source databases from C# (in addition to our in-memory and XML
providers).

Currently we are still missing some support in our compiler
and our class libraries for this to work in Mono, but this
will be a great test case and help us deliver this sooner to
developers.

Update: A nice blog entry talks about Parallel
LINQ. A version of LINQ that can be used to parallelize
operations across multiple CPUs: