我正在为我的项目使用Linq-to-SQL,但我听说过T4模板代码生成器? T4模板是否比Linq-to-SQL数据上下文更好?
答案 0 :(得分:2)
你混合了两件事。 LINQ to SQL是一个O / RM工具,就像NHibernate,Entity Framework,LLBLGen等。 T4是一个代码生成器工具。它们不是相互排斥的。
LINQ to SQL有T4模板,允许您以与LINQ to SQL代码生成器不同的方式生成LINQ to SQL实体和DataContext
。但是,在没有DataContext
的情况下使用LINQ to SQL是不可能的。当您不使用DataContext
时,您没有使用LINQ to SQL。
然而,使用T4模板生成实体和DataContext
可能是有益的。您将了解特定模板的好处,并确定它是否对您有用。例如,codeplex上的L2ST4模板项目非常类似于L2S自己生成的代码,但允许您根据自己的需要更改模板。
答案 1 :(得分:2)
如果你喜欢LINQ to SQL,那么我强烈建议你看一下PLINQO。 PLINQO是一个开源(基于模板,如T4)ORM,它不仅可以生成LINQ to SQL实体,还可以为框架添加许多修复和增强功能。
是的,PLINQO需要CodeSmith生成器,但有一个PLINQO促销活动,您只需要做博客或有关PLINQO的推文,您就可以免费获得CodeSmith的副本!
上查看享受! -Tom DuPont(PLINQO开发团队成员)
答案 2 :(得分:1)
这不是“Linq-to-SQL”或“T4”问题,实际上 - 这些是完全不同的事情。
T4生成代码或任何类型的文本文件。这是代码生成技术。
Linq-to-SQL是一个 ORM - 对象关系映射器 - 将SQL Server表映射到.NET域对象 - 完全不同的球赛。
事实上,甚至有一组T4模板可以生成Linq-to-SQL实体和数据上下文类 - check it out on Codeplex - 非常棒的东西!
答案 3 :(得分:0)
T4是一个文本生成系统。使用它编写数据访问可能是可能的,但不推荐。 L2S数据上下文并不能真正被认为更好或更糟,因为它们并没有真正共享目的。
我建议如果L2S限制你,那么你需要考虑备用ORM。有很多选择。看看NHibernate,Entity Framework或LLBLGen Pro。