Can I use LINQ with databases other than SQL Server?

Yes. DLinq, the database implementation of LINQ, uses ADO.NET for its database connectivity, so in theory, DLinq applications can connect to any database that uses a .NET Data Provider. As you might expect, however, the prerelease code works best with SQL Server 2005. Support for other databases should be available when the product ships.

Will there be a tool to help create the database-object mappings used by DLinq applications?

Yes. LINQ ships with a command-line tool currently named SqlMetal that can automatically generate DLinq database-to-object mappings, automating the process of creating object mappings for your database objects. Although Microsoft might change the name of this tool when the product is shipped, the company intends the tool to be part of the shipping LINQ release.

Does LINQ support complex database-to-business object mapping?

No. Simplicity is one of the design tenets behind LINQ, and the process of creating mappings between complex business objects such as orders or invoices and multiple underlying database objects is not simple. DLinq uses a one-to-one style of mapping between database objects (e.g., tables and views) and instantiated DLinq program objects. If you want to create more sophisticated mappings, you'll require third-party tools or manual coding.

When will DLinq be available?

At the time of this writing, LINQ is still in prerelease form, so it won't likely be generally available before 2007. Microsoft plans to release the technology as a part of Visual Basic and C# 3.0, which probably means it will be in the next release of Visual Studio. However, it could show up sooner in a Visual Studio 2005 service pack.