Bueno, esto me recuerda un poco a la historia de los modelos de datos de MS
Bueno, recordando un poco de historia (creo q aun m acuerdo), alla en los años de 1998, sacaron la version VB 6.0, en el cual el modelo de datos o era ADO o era DAO, (creo q en ese entonces el mas reciente era DAO pero tengo mis dudas..).
Luego vinieron los de MS, y sacaron el .NET Framework 1.0 - 1.1 con Visual Studio 2003, donde introdujeron un nuevo modelo de conexion de datos. El cual se utilizaba las clases de SQLConnection, SQLCommand, etc, (y todo las clases q inician con SQL). Asi q todos los q necesitaba ir a traer datos a SQL Server podian hacerlo con esas nuevas clases que habian introducido en al plataforma.
Luego, sacan Visual Studio 2005 con el .NET Framework 2.0, en el cual introducen el nuevo modelo de datos llamado ADO.NET, donde ya no se tenian que hacer las cosas a puro codigo (como con SQLConnection, SQLCommand), sino q a travez de la herramienta que automaticamente convertia todas mis tablas de la BD a DataSet. Es alli donde surgen los TableAdapter, DataSet, (y data no recuerdo...). En ese modelo estaba el modelo Desconectado (DataSet), y el modelo conectado (DataReader creo yo..). Y uno podia arrastrar y soltar y tenian ya sus formularios con sus campos o sus DataGrid completamente conectados sin nada de codigo.
En ese momento hubieron varios q decian q para aplicaciones de negocio no convenia utilizar los DataSet, q era mejor trabajarla todo por codigo, etc, etc.. pero ese es otro tema.
Luego, en entre 2006 - 2008, sacan tanto el .NET Framework 3.0 y 3.5, y vienen para convencer a ambos bandos del anterior (puro codigo o con asistente), sacan algo intermedio pero igual q potente y con poco codigo, lo denominado LINQ.
Si mal no recuerdo en la historia, LINQ vino en el .NET Framework 3.0 (asi como alli venia WPF, WCF, etc...) y en el .NET Framework 3.5, es donde introducen el nuevo modelo de datos, el cual es el EF (Entity Framework).
Este es el modelo mas reciente para trabajar con datos, y ahora todas las tablas las convierte en entidades, y "crea" una semi-capa de datos (Aplicaciones n-capas).
Al final, utilizar LINQ con EF, es completamente potente y facil de usar.