2009-06-23 9 views
4

Je ne fais que commencer avec la pile Microsoft qui fait un site web dans ASP.Net MVC et jusqu'à présent en utilisant LINQ to SQL. Devrais-je considérer LINQ to Entities? A-t-il quelque chose de spécial à offrir? Si oui, quoi?Dois-je considérer LINQ to Entities?

Répondre

8

I J'ai enquêté sur cette chose exacte moi-même.

Voici mes conclusions en un mot

LINQ to SQL

Avantages

  • Incroyablement facile à utiliser

Inconvénients

  • Impossible de mettre à jour le diagramme à partir de la base de données, vous devez supprimer votre classe, puis le faire glisser sur le diagramme à partir de la base de données. C'est une vraie douleur si vous avez modifié le diagramme du tout.

  • Ne sont plus en cours de développement (ils vont développer Entity Framework à la place).

Entity Framework

Avantages

  • a une fonctionnalité beaucoup plus (tableau d'héritage, etc ...)

  • peut-il être mis à jour à partir de la base de données

  • A plusieurs fournisseurs (et pas seulement SQL)

  • Le modèle peut être interrogé sans utiliser LINQ, vous pouvez utiliser Entity SQL

  • Microsoft semble investir fortement et propose comme le principal moyen d'accès une base de données: Update on LINQ to SQL and LINQ to Entities Roadmap, Clarifying the message on L2S Futures.

Inconvénients

  • Compliqué et beaucoup moins intuitive

Conclusion

Personnellement, je décide d'aller dans la voie d'utiliser Entity Framework. J'ai acheté un livre et j'ai lu le matériel en ligne et j'en suis très impressionné. Il a fallu un peu d'effort supplémentaire pour apprendre, mais les avantages sont vraiment grands.

+0

Il ne supporte pas POCO - c'est pourquoi je ne vais pas le toucher. –

+1

L2S a également l'avantage d'être sacrément rapide, presque aussi rapide que ADO.NET natif lors de l'utilisation de requêtes compilées. Il est également beaucoup plus léger que EF. Pour les petits projets avec des exigences simples j'utiliserais probablement L2S. En outre, L2S est assez bon pour conduire StackOverflow. La version 4 d'EF semble vraiment intéressante. –

0

D'abord, Linq à l'entité offre plusieurs à plusieurs functionnality

Deuxièmement, Microsoft aurait mis plus de temps dans ce

et je suis sûr que beaucoup d'autres bonnes raisons

0

Bien que LINQ to SQL ne disparaisse pas, Microsoft mise sur LINQ to Entities. Pour cette raison, j'irais avec LINQ to Entities.

Le Blog de l'équipe ADO.NET a plus d'informations sur la question:

http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx

http://blogs.msdn.com/adonet/archive/2008/10/31/clarifying-the-message-on-l2s-futures.aspx

J'ai énuméré ces messages par ordre chronologique, mais assurez-vous de lire au moins le dernier - c'est en fait le plus important.

Questions connexes