> 
> What programmers needed was a way to generalize different data systems
>  in a standard, consistent, and powerful way. In the world of .NET
>  application development, Microsoft ADO.NET meets that need. Instead of
>  worrying about the minutiae associated with the different database
>  systems, programmers using ADO.NET focus on the data content itself.
> 
> 
> *From the book "ADO.NET 4 Step by Step"*
> 
> 
> 

Always thinking the next structure.

ADO.NET can be sepearated on two parts:

**1. Classic ADO.NET** (DataSets, DataTables, etc.). In classic variant there are distinct DB connection providers, every which translates DB internal data to the .NET. For example MS SQL Server holds data in one way and Oracle in another. So we can change the data base with changing provider. 

Seems as magic pill, however all ADO.NET statements are hard coded.

For MS SQL top 10 select statement is `SELECT TOP 10 ROWS FROM TABLE`, and for Oracle `SELECT ROWS FROM TABELE WHERE ROWNUM <= 10`. **It seems that changing DB and provider will not help, isnt' it?**

**2. Entity Framework.** This framework has internal independent language statements that is transformed to the choosen DB statesment, which looks as truely magic pill:

LINQ -> Internal EF statement -> MS SQL DB,

LINQ -> Internal EF statement -> Oracle DB.

So can one simply change the DB and be almost independent from DB in classic ADO.NET?