¿Hay alguna razón para usar LINQ to SQL, o debería simplemente entrar en Entidades?
No soy objetivo (como un usuario de HardqsteSQL rígido), pero esto es responsable.
Las tecnologías de mapeo relacional de objetos son intentos de resolver o mitigar la falta de coincidencia de impedancia relacional entre objetos.Son puentes entre los dos mundos: el mundo de los objetos y el mundo de los datos relacionales.
Y parece que los desarrolladores de estos puentes generalmente llaman a un lado o al otro, a casa.
LinqToSql es un ORM desde el lado del objeto. Fue desarrollado por el equipo C# y le permite usar objetos para representar datos. En LinqToSql no hay cadenas opacas al compilador, todas las consultas son comprobadas por el compilador frente a la asignación.
EF es un ORM desde el lado de los datos. Fue desarrollado por el equipo de ADO y le permite usar datos representados como objetos. En EF, hay muchas cadenas opacas.
Las consultas tienen que ejecutarse finalmente contra una base de datos, y el compilador no puede certificar que la base de datos disponible en tiempo de ejecución coincide con la asignación (verdadera en cualquiera de los ORM). Debido a esta realidad del mundo de los datos, el equipo de datos no valora tanto las garantías del compilador como el equipo de C#.
Después de haber trabajado en un back-end de TSQL durante años, sin la protección de un compilador, valgo mucho la ayuda que el compilador me dará. Y por eso estoy del lado del equipo C# en esto.
Por ejemplo, cargar a un cliente con sus pedidos.
//linq to sql.
DataLoadOptions load = new DataLoadOptions();
load.LoadWith<Customer>(c => c.Orders); //<-- strong typed
myDataContext.LoadOptions = load;
IQueryable<Customer> query = myDataContext.Customers
.Where(c => c.CustomerId == 1);
//entity framework
IQueryable<Customer> query = myObjectContext.Customers
.Include("Orders") // <-- opaque string
.Where(c => c.Customer.Id == 1);
Es bueno volver a esta pregunta ahora que .Net 4.0 está fuera, con muchos cambios en ambas tecnologías. – DOK
Duplicado: http://stackoverflow.com/questions/2874003/whats-the-best-object-relational-mapping-tool-for-net –