2010-06-17 93 views

回答

2

你在混合两件事。 LINQ to SQL是一个O/RM工具,就像NHibernate,Entity Framework,LLBLGen等一样。 T4是一个代码生成器工具。它们不是相互排斥的。

有用于LINQ to SQL的T4模板,允许您以不同于LINQ to SQL代码生成器执行的方式生成LINQ to SQL实体和DataContext。但是,使用LINQ to SQL而不使用DataContext是不可能的。当你不使用DataContext时,你并没有使用LINQ to SQL。

然而使用T4模板生成实体和DataContext可能是有益的。您将看到特定模板的优点,并决定这对您是否有用,或者不是。例如,codeplex上的L2ST4模板项目与L2S自身生成的代码非常相似,但允许您根据自己的需要更改模板。

0

T4是一个文本生成系统。使用它来编写数据访问可能是可能的,但不推荐。它不能被认为是更好或更差的L2S数据上下文,因为它们并不真正共享目的。

我建议如果L2S限制你,那么你需要考虑备用的ORM。有很多选择。看看NHibernate,Entity Framework或LLBLGen Pro。

1

这不是一个“Linq-to-SQL”或“T4”的问题,实际上 - 这些都是完全不同的东西。

T4生成代码或任何类型的文本文件,真的。这是一个代码生成技术。

Linq-to-SQL是一个ORM - 对象关系映射器 - 将SQL Server表映射到.NET域对象 - 完全不同的球赛。

事实上,甚至有一套T4模板来生成Linq-to-SQL实体和数据上下文类 - check it out on Codeplex - 优秀的东西!

2

如果你喜欢LINQ to SQL,那么我强烈建议你看看PLINQO。 PLINQO是一个开源(基于模板,如T4)的ORM,它不仅生成LINQ to SQL实体,还为框架添加了许多修复和增强功能。

是的,PLINQO需要CodeSmith Generator,但是有一个PLINQO促销,你需要做关于PLINQO的博客或推特,你可以免费获得CodeSmith的副本!

瞧瞧吧http://www.plinqo.com

享受! -Tom DuPont(PLINQO开发团队成员)