我们准备在工作中启动一个全新的项目,而不是遗留代码。我们在过去使用过亚音速,我们对它很满意。但那是在Linq之前。你今天会选择什么样的数据层,Linq或Subsonic?
有没有人不得不面对同样的问题(Linq x Subsonic)?
你的决定是什么?原因是什么?
任何洞察赞赏。
我们准备在工作中启动一个全新的项目,而不是遗留代码。我们在过去使用过亚音速,我们对它很满意。但那是在Linq之前。你今天会选择什么样的数据层,Linq或Subsonic?
有没有人不得不面对同样的问题(Linq x Subsonic)?
你的决定是什么?原因是什么?
任何洞察赞赏。
亚音速
优点:
缺点:
请记住:
的LINQ to SQL
优点:
缺点:
请记住:
我喜欢LINQ的一件事,我不认为SubSonic会优雅地处理,它会自动处理连接。
FROM a in db.Orders
where a.Total > 100
SELECT new {a.Item.Desc, a.Customer.Name};
会自动生成SQL像thisL
select i.DESC, c.NAME
from ORDERS o
inner join ITEMS on o.ItemID = i.ItemID
inner join CUSTOMERS c on o.CustomerID = c.CUSTOMERID
where o.TOTAL > 100
linq to sql最大的风险是微软会厌倦它并放弃它。有很多人猜测这已经发生,只有实体框架才会更新。亚音速不会受此影响,更糟的情况是您有源代码进行编辑。
我处于相同的情况。 LinQ更“视觉化”,你可以在vstudio中做所有事情,甚至Rob也承认亚音速有一些东西可以与之匹配。
IEnumerable,LINQDatasource(带有自动分页)和可视化建模让我相信选择Linonic而不是Subsonic。
NHibernate怎么样?新项目是否真的不合格?尽管如此,来自Java的人会发现它很熟悉,你也可以将它用于.NET 2.0和Mono。
您可能想要查看MS stops developing LINQ to SQ L发生的情况,因为它似乎正在发生。 SubSonics最新版本更易于创建查询并更易读,然后是以前的版本。
我的经验一直以SubSonic为主。这是非常直接的部署,你会在半小时内完成你的DAL。请记住,这是瑞士军刀,因为它是为实用设计的。基本上你会得到每个表生成的类,以及对集合进行延迟加载的能力。你也可以通过框架执行存储过程,所以如果你有复杂的数据结构,你可以从数据库中获取它们并更新你手工制作的类。
我现在已经在5个主要项目中使用了它,并且我对它变得依赖的速度印象深刻。
我和Linq一起去了,因为它是内置在框架中的。对于那些声称不会被微软支持的公司来说......这是LinqToSql将被逐步淘汰。我相信其中一个计划是将其吸收到实体框架中。
我现在正在使用实体框架。它也使用linq,基本上它就像linqToSql一样,如果你选择使用它,就会有更多的灵活性和强大的功能。
我倾向于避免第三方框架和orms,因为它们最终也会消失。我相信他们有更多的机会死亡,因为他们的生活来自有多少人对它感兴趣并使用它。他们的生活也严重依赖于它的主要作者/贡献者。
你的意思是LINQ或LINQ to SQL?因为SubSonic从3.0开始支持LINQ。 – 2009-07-16 14:44:39
当我问这个问题时,去年十月,Subsonic在版本2.1(没有Linq)。 我想更新的问题应该是LinqToEntities x Subsonic 3.0.0.3(截至目前)。 – nandos 2009-07-16 16:38:40
实体框架提供比Subsonic更好的性能:http://www.timacheson.com/Blog/2009/jun/entity_framework_vs_subsonic – Tim 2009-07-16 14:41:17