What\'s the difference between LINQ to SQL and ADO.net ?
The following diagram provides an overview of how the ADO.NET LINQ technologies relate to high-level programming languages and LINQ-enabled data sources.
(source: microsoft.com)
>
from http://msdn.microsoft.com/library/vstudio/bb399365
LINQ helps you to integrate ADO.NET in the part of the code where the compiler can evaluate and help you with IntelliSense and so on. So with LINQ you can use ADO.NET more easily...
ADO.NET is a set of class libraries that provide basic data access infrastructure on top of .NET Basic Class Libraries. It also contains basic LINQ infrastructure, such as static class of Enumerable (that provide LINQ to Object) and an interface to do basic query against relational data such as IQueryable.
LINQ to SQL is NOT a data access framework.
ADO.NET can be assumed as a data access framework, but this can be misleading, since ADO.NET is not a standalone product. ADP.NET is truly a part of .NET Framework.
LINQ to SQL is simply an implementation of LINQ to function as a data provider that connect and maps directly to SQL Server. Underneath LINQ to SQL, contains heavy usages of ADO.NET classes in System.Data.SqlClient namespace, so it's implemented on top of ADO.NET but focusing on and it's specific to accessing SQLServer.
ADO.NET is the underlying data access API for .NET Framework (much like JDBC in Java). It's been around since the first release of .NET.
LINQ to SQL is a data access framework built on ADO.NET and new language features that makes SQL Server data available natively in the object oriented style of programming.
Also, not really sure if I am right here. But ADO.NET is allways working 'offline' with your data. I think LINQ2SQL is working online with your data.
You need to start with the understanding that LINQ is Microsoft's intended paradigm for querying all sorts of structured data declaratively with one tool - think "One Ring To Rule Them All". LINQ to SQL is just the first manifestation, implemented to query relational databases.
In fact, Microsoft has a mixed message about LINQ's relationship with SQL. I think the problem is that it has become understood as a substitute for other abstraction strategies, and it is now often seen as a way for programmers to avoid the need to become skilled at SQL.
ADO.Net treats OOP as what it is, and relational data as what it is, and expects you to do each properly on its own terms.
The advantages and disadvantages of the two are open to debate. But if you agree that Microsoft's Computer Science wizards have come up with something of an uber-abstraction for structured data querying, then you'll probably want to move in this direction. There is some indication that other software product providers are willing to play along, so it may not even end up being totally proprietary, which would be a good thing.
There is a fairly large set of differences between these two technologies that cannot be really covered in a short SO post, but I'll try to cover the highlights