2010-06-17 7 views
0

J'utilise Linq-to-SQL pour mes projets mais j'ai entendu parler du générateur de code modèle T4? Que le modèle T4 soit meilleur que le contexte de données Linq-To-SQL?Modèle Linq-To-SQL Vs T4

Répondre

2

Vous mélangez deux choses. LINQ to SQL est un outil O/RM, tout comme NHibernate, Entity Framework, LLBLGen et autres. T4 est un outil générateur de code. Ils ne sont pas mutuellement exclusifs.

Il existe des modèles T4 pour LINQ to SQL qui vous permettent de générer vos entités LINQ to SQL et DataContext d'une manière différente de celle du générateur de code LINQ to SQL. L'utilisation de LINQ to SQL sans DataContext est cependant impossible. Lorsque vous n'utilisez pas le DataContext, vous n'utilisez pas LINQ to SQL. L'utilisation de modèles T4 pour générer des entités et DataContext peut toutefois être bénéfique. Vous examinerez les avantages d'un modèle particulier et déterminerez si cela vous est utile ou non. Par exemple, le projet modèle L2ST4 sur codeplex ressemble étroitement au code que L2S générerait lui-même, mais vous permet de modifier le modèle pour vos propres besoins.

0

T4 est un système de génération de texte. Écrire votre accès aux données en l'utilisant est probablement possible, mais pas recommandé. Il ne peut pas vraiment être considéré comme meilleur ou pire que le contexte de données L2S parce qu'ils ne partagent pas vraiment un but.

Je suggérerais que si L2S vous limite, alors vous devez considérer d'autres ORM. Il existe plusieurs alternatives. Jetez un oeil à NHibernate, Entity Framework ou LLBLGen Pro.

1

Ce n'est pas une question «Linq-to-SQL» ou «T4», vraiment - ce sont des choses totalement différentes.

T4 génère du code ou n'importe quel type de fichier texte, vraiment. C'est une technologie de génération de code .

Linq-to-SQL est un ORM - objet-relationnel mapper - pour mapper des tables SQL Server aux objets de domaine .NET - jeu de balle totalement différent.

En fait, il existe même un ensemble de modèles T4 pour générer l'entité Linq-to-SQL et les classes de contexte de données - check it out on Codeplex - d'excellentes choses!

2

Si vous aimez LINQ to SQL, alors je vous suggère fortement de jeter un oeil à PLINQO. PLINQO est un ORM open source (basé sur un modèle, comme T4) qui non seulement génère des entités LINQ to SQL, mais ajoute également de nombreuses corrections et améliorations au framework.

Oui, PLINQO nécessite le Générateur CodeSmith, mais il existe une promotion PLINQO où tout ce que vous avez à faire est de bloguer ou de tweeter à propos de PLINQO et vous pouvez obtenir GRATUITEMENT une copie de CodeSmith!

Check it out à http://www.plinqo.com

Enjoy! -Tom DuPont (membre de l'équipe de développement de PLINQO)