Entity Framework vs LINQ to SQL

.net entity-framework linq-to-sql

Question

Maintenant que .NET v3.5 SP1 est sorti (avec VS2008 SP1), nous avons maintenant accès au framework d'entités .NET.

Ma question est la suivante. Lorsque vous essayez de choisir entre Entity Framework et LINQ to SQL en tant qu'ORM, quelle est la différence?

Si je comprends bien, Entity Framework (lorsqu'il est utilisé avec LINQ to Entities) est un «grand frère» de LINQ to SQL? Si tel est le cas, quels sont ses avantages? Que peut-il faire que LINQ to SQL ne puisse pas faire tout seul?

Réponse acceptée

LINQ to SQL ne prend en charge que le mappage 1 à 1 des tables, vues, sprocs et fonctions de base de données disponibles dans Microsoft SQL Server. C'est une excellente API à utiliser pour la construction d'accès rapide aux données à des bases de données SQL Server relativement bien conçues. LINQ2SQL a été publié pour la première fois avec C # 3.0 et .Net Framework 3.5.

LINQ to Entities (ADO.Net Entity Framework) est une API ORM (Object Relational Mapper) qui permet une définition large des modèles de domaine d'objets et de leurs relations avec de nombreux fournisseurs de données ADO.Net. En tant que tel, vous pouvez combiner différents fournisseurs de bases de données, serveurs d’application ou protocoles pour concevoir un mélange agrégé d’objets construits à partir de divers tableaux, sources, services, etc. le .NET Framework 3.5 SP1.

Ceci est un bon article d'introduction sur MSDN: Introduction à LINQ to Relational Data


Réponse populaire

Je pense que la réponse rapide et sale est que

  • LINQ to SQL est le moyen rapide et facile de le faire. Cela signifie que vous irez plus vite et que vous livrerez plus rapidement si vous travaillez sur quelque chose de plus petit.
  • Entity Framework est le moyen le plus complet et le plus efficace de le faire. Cela signifie que vous prendrez plus de temps au début, que votre développement sera plus lent et que vous aurez plus de flexibilité si vous travaillez sur quelque chose de plus grand.


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow