59 votes

Quelle est la différence entre le fichier .edmx et le fichier .dbml en Linq ?

Quelle est la différence entre les fichiers .edmx et .dbml en Linq ? Dans VS 2008, quel est le meilleur choix de source de données entre edmx et dbml ? Des problèmes peuvent-ils survenir lors de l'utilisation du fichier edmx dans VS 2008 ? Puis-je utiliser edmx dans VS-2008 ?

1 votes

Tu devrais récompenser quelqu'un

44voto

Mikael Östberg Points 10487

edmx est le fichier de modélisation pour Entity Framework.

dbml est le fichier de modélisation pour Linq 2 Sql.

Vous devriez passer votre temps à apprendre Entity Framework car Linq 2 Sql est obsolète.

16 votes

Il devrait certainement apprendre EF, mais L2S n'est pas obsolète. De plus, s'il utilise VS2008 (.NET<4), EF est tout simplement affreux et non optimisé pour une utilisation MSSQL comparé à L2S. Tout le monde n'a pas besoin ou ne devrait pas utiliser EF, des outils spécialisés sont parfois meilleurs que des outils à usage général.

2 votes

Peut-être que ce n'est pas officiellement obsolète, mais cela devrait définitivement être traité comme tel car le développement a été interrompu (blogs.msdn.com/b/adonet/archive/2008/10/29/…). Mais EF avant EF4 n'est pas si amusant, c'est vrai. À mon avis, L2S fonctionne bien pour les projets simples, mais il devrait être évité s'il s'agit d'un projet à long terme (je travaille avec L2S maintenant et je ressens la douleur).

5 votes

Non, pas mort et définitivement en train de recevoir de nouvelles fonctionnalités, cela a même été discuté ici (stackoverflow.com/questions/3041011/is-linq-to-sql-deprecat‌​ed). Il ne reçoit simplement pas autant d'attention, mais il n'en a pas besoin car c'est un ensemble d'outils fonctionnels bien complet. Malheureusement, la plupart des gens n'utilisent même pas les fonctionnalités d'EF qui ne sont pas présentes dans L2S et considèrent EF comme étant L2S tout en faisant face aux pénalités de performance que l'abstraction entraîne inévitablement. Se précipiter aveuglément vers les choses juste pour le "facteur de nouveauté" n'est pas, selon moi, une bonne chose, surtout si vous n'en avez pas besoin.

36voto

vcsjones Points 51910

.edmx est l'Entity Framework. .dbml est LINQ-to-SQL. Alors que leur objectif général est le même, ce sont des frameworks entièrement différents. Entity Framework est plus récent et sera probablement le meilleur investissement de votre temps à apprendre car je soupçonne que c'est là que beaucoup d'innovations vont aller.

17voto

Yogesh Points 21

Les deux sont présentés comme les dernières technologies et parfois un peu confus quand il s'agit de savoir lequel utiliser. Entity Framework et LINQ to SQL ont beaucoup en commun mais sont encore différents l'un de l'autre de plusieurs façons:

Entity Framework:
1. Développement d'entreprise:
2. Fonctionne avec le modèle conceptuel de la base de données:
3. Fonctionne avec toutes les sources de données:
4. ".EDMX" est créé lors de l'utilisation d'Entity Framework:

LINQ::
1. Développement d'applications rapides:
2. Fonctionne avec des objets dans la base de données:
3. Fonctionne principalement avec SQL Server:
4. ".dbml" est créé lors de l'utilisation de LINQ to SQL:

Entity Framework est davantage axé sur le développement d'entreprise où le schéma est généralement optimisé pour des considérations de stockage comme la cohérence des performances et la partition. Entity Framework est conçu autour de l'exposition d'un modèle de données orienté application qui est peu couplé et peut différer du schéma de base de données existant. Par exemple, vous pouvez mapper une seule entité (classe) sur des multiples ou mapper plusieurs entités sur la même table. Entity Framework a un fichier “.edmx” (modèle d'entité ADO.NET) lorsqu'il est ajouté à l'application.

LINQ to SQL a principalement des fonctionnalités pour soutenir le développement rapide d'applications contre SQL Server. LINQ to SQL vous permet d'avoir une vue fortement typée de votre schéma de base de données existant. Vous pouvez construire des requêtes LINQ sur des tables et renvoyer des résultats sous forme d'objets fortement typés. LINQ to SQL a un fichier “.dbml”(LINQ to SQL) lorsqu'il est ajouté à l'application. Vous pouvez utiliser LINQ to SQL en décorant les classes existantes avec les attributs.

[Source originale: [https://parassanghani.blogspot.com/2011/01/entity-framework-vs-linq-to-sql.html\]](https://parassanghani.blogspot.com/2011/01/entity-framework-vs-linq-to-sql.html)

11 votes

2voto

amit singh Points 9

LINQ to SQL a principalement des fonctionnalités qui soutiennent le développement rapide d'applications contre SQL Server. LINQ to SQL vous permet d'avoir une vue fortement typée de votre schéma de base de données existant. Vous pouvez construire des requêtes LINQ sur les tables et retourner les résultats sous forme d'objets fortement typés. LINQ to SQL a un fichier ".dbml" (LINQ to SQL) lorsqu'il est ajouté dans l'application. Vous pouvez utiliser LINQ to SQL en décorant les classes existantes avec les attributs.

1 votes

Cela ne répond pas du tout à la question, qui portait spécifiquement sur les fichiers en question. Il ne demandait pas une comparaison.

0voto

Wahid Masud Points 418

Je n'ai jamais compris la littérature comme les définitions. Quoi qu'il en soit, l'essentiel est que L2S est léger et EF est lourd. Cela signifie que L2S ne fonctionne qu'avec SQLServer et EF fonctionne avec bien d'autres.

Référence: Différence entre L2S et EF

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X