2009-01-14 2 views
3

Quelles caractéristiques principales manquent à Linq-to-Sql?Y a-t-il des fonctionnalités principales manquantes dans Linq-to-Sql?

  • Compatibilité avec d'autres grands moteurs de base de données SQL (MySQL, etc.)
  • Cartographie De nombreux à àplusieurs
  • Toutes les autres?

J'ai déjà développé un projet majeur avec Linq-to-Sql à son coeur DAL. Je n'avais pas développé à l'aide d'un mappeur de données relationnelles auparavant, donc c'était une courbe d'apprentissage provenant de jeux de données. Mais je n'ai pas trouvé de problèmes majeurs qui ne pouvaient pas être résolus avec Linq-to-Sql. Mes tests ont conclu qu'il était significativement plus rapide que Linq-to-Entities.

Quelles sont donc les principales fonctionnalités de Linq-to-Sql?

Je suppose que ce que j'essaie de demander, c'est si le développement sur Linq-to-Sql est arrêté - est-ce que ça va?

+0

Dupliquer: http://stackoverflow.com/questions/253263/has-microsoft-really-killed-linq-to-sql et http://stackoverflow.com/questions/252683/is-linq-to-sql -doa et http://stackoverflow.com/questions/352487/is-linq2sql-dead –

+3

Je ne pense pas que ce soit la même question. Je demande ... Y at-il des fonctionnalités MAJEURES manquantes dans Linq-to-Sql? –

+0

Alors essayez en fait de lire ma question avant de la fermer! –

Répondre

0

sauf si microsoft peut rendre cadre d'entité mieux que linq à sql à la fois pour la vitesse et la simplicité ce n'est pas grave IMHO.

3

Maybe the biggest thing missing is a future

Je suis d'accord avec ce post, je lié à, MS dire qu'il y aura le développement en cours sur LINQ to SQL, mais leurs actions (ou plus précisément les non-actions) raconter une autre histoire. MS veut certainement que vous pariez sur Linq to Entities à la place.

+1

Je ne suis pas d'accord. Juste parce que la machine de marketing MSFT nous dit "x est mort, utilisez y à la place" ne le rend pas vrai. Peut-être le fera-t-il si EF/L2E parvient à maturité pour remplacer L2S, mais jusqu'à présent, il est prématuré de le déclarer mort. (Tout comme il est prématuré de prétendre que Winforms est mort et que tout le monde devrait utiliser WPF à la place, ou que webforms est mort et tout le monde devrait utiliser silverlight ou Win32 et COM sont morts et tout le monde devrait utiliser .net à la place. – KristoferA

+0

@KristoferA: L2S était mort hors de la porte .. Il prend juste les adopteurs précoces un certain temps pour le comprendre. – NotMe

+0

L'esprit de LINQ-to-SQL se poursuit dans un projet appelé IQToolkit. Si vous êtes le type L2S, donnez un tour à IQToolkit. –

1

J'ai développé un système l'utilisant récemment. Mon collègue qui a conçu la base de données dans laquelle il se connecte a également utilisé le codage L2S. Les deux choses dont il a été whinged (incessamment) étaient:

1/Aucune cuite de manière à faire des suppressions en bloc basées sur certaines conditions. L2S finira par supprimer les lignes individuellement ce qui est très inefficace. Il y a un certain nombre de blogs discutant de diverses solutions de rechange pour cela. 2/Mises à jour nécessitent le mécanisme lourd d'interroger un objet, de le mettre à jour puis de valider les modifications, c'est-à-dire que la requête initiale ne devrait pas être nécessaire. Si vous connaissez la clé d'une ligne, vous devriez pouvoir la mettre à jour directement sans requête préalable.

3
  • Bon support pour le chargement désireux
  • cartographie avancée (c.-à-pas 1 à 1 entre les classes et les tables)
  • la possibilité d'actualiser la cartographie avec base de données change
+0

Bien que n'étant pas pris en charge prêtes à l'emploi, le n ° 3 est pris en charge par les outils tiers: http://www.huagati.com/dbmltools/ – KristoferA

+0

FWIW, vous pouvez ajouter un chargement ardent dans linq-to-sql avec DataLoadOptions - Dans la poignée de cas où j'avais besoin de le faire, ça a très bien fonctionné. http://msdn.microsoft.com/fr-fr/library/system.data.linq.dataloadoptions.aspx –

1

I J'ai utilisé linq à sql pendant des mois. Le seul point que j'ai trouvé est que l'ajout d'un prédicat sur un mélange de procédures stockées et de résultats générés par programme essaiera d'envoyer la requête à SQL, avant que les résultats programmatiques aient été calculés. Ceci est facilement résolu en appelant d'abord .ToList().

De temps en temps, je souhaite une fonctionnalité Linq to Entity, mais linq to sql réalise 95% de ce que je veux.

2

Tout d'abord, il n'est pas mort. Bien qu'il n'obtienne pas de nouvelles fonctionnalités dans la version 4.0, ils ont corrigé un tas de bugs et de bizarreries et je suis sûr qu'ils continueront à le faire.

Vérifiez la liste des modifications LINQ to SQL pour .NET 4.0:
http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40

l'OMI, il peut être une bonne chose qu'ils ne touchent pas trop de cœur - il est solide, efficace et génère un très bon SQL dans la plupart des cas, donc toute chirurgie majeure risquerait juste de casser certains des goodies. Les quelques bits manquants dans le concepteur et l'exécution peuvent être vissés ou travaillés. En outre, Matt Warren, le gars qui a initialement écrit L2S chez MSFT a écrit une "version 2" qu'il a publiée en open-source (MS-PL) sur son blog et sur codeplex.com. Il appelle l'IQToolkit mais je voudrais parler comme L2Sv2 ... :)

Check it out à:
http://blogs.msdn.com/mattwar/
http://www.codeplex.com/IQToolkit/

1

Je ne pense pas qu'il est mort. Je pense que cela sera travaillé et que les problèmes actuels disparaîtront probablement. Mais je ne pense pas que ça va être quelque chose de plus que ce que c'est maintenant. Est-ce que ça importe? Personnellement, je ne le pense pas. Je pense que le cadre est bon tel qu'il est. Le 2 problème majeur que j'ai trouvé avec L2S était l'incapacité de détacher facilement les entités et le mécanisme de mise à jour maladroit.

2

Linq to SQL ne supporte pas facilement les architectures multi-tiers.

Entity Framework a été conçu dès le départ pour prendre en charge des scénarios distribués. Alors que dans .Net 3.5 EF n'était pas complètement là (au moins d'une manière automatique), il a jeté les bases pour d'autres améliorations. Ainsi, dans .Net 4.0, l'EF ajoute des modèles T4 aux entités d'auto-suivi de code-gen et aux DTO.

Questions connexes