您今天对您的数据层选择什么,Linq或Subsonic?

时间:2008-10-30 14:34:38

标签: linq subsonic data-layers

我们准备在工作中开始一个全新的项目,没有遗留代码。我们过去确实使用过Subsonic,我们对它非常满意。但那是在Linq之前。

有没有人不得不面对同样的问题(Linq x Subsonic)?

你的决定是什么?原因是什么?

有任何见解。

8 个答案:

答案 0 :(得分:11)

<强>亚音速

优点:

  • 美好而简单
  • 脚手架

缺点:

  • 方法签名通常接受字符串parms(尽管你被鼓励使用DAO字符串常量),这些可以被滥用。

请记住:

  • 需要网站项目无代码,无需模型生成(需要BuildProvider)。

Linq To SQL

优点:

  • IDE中的句法糖
  • MS支持
  • 查看要在IDE中执行的SQL
  • 允许在模型中进行不同级别的摆弄,从自动生成到显式定义再到对象属性。

缺点:

  • 复合。您需要学习像DataContext这样的新概念才能有效。

请记住:

同时评估ADO.NET Entity Frameworkhere

答案 1 :(得分:3)

我喜欢LINQ的一件事,我认为SubSonic不会优雅地处理它,它会自动处理连接。

FROM a in db.Orders
where a.Total > 100
SELECT new {a.Item.Desc, a.Customer.Name};

会自动生成像thisL

这样的SQL
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

答案 2 :(得分:1)

NHibernate怎么样?对于新项目,这真的不合适吗?尽管如此,来自Java的人会发现它很熟悉,你也可以将它与.NET 2.0和Mono一起使用。

答案 3 :(得分:1)

我的经验一直是SubSonic的主要经验。部署非常简单,您将在半小时内完成DAL。请记住,这是一把瑞士军刀,因为它是专为实用而设计的。基本上,您可以获得每个表生成的类,以及为集合执行延迟加载的功能。您还可以通过框架执行存储过程,因此如果您有复杂的数据结构,可以从数据库中获取它们并更新您手工制作的类。

我现在已经在5个主要项目中使用过它,并且我对它的依赖程度感到印象深刻。

答案 4 :(得分:1)

我选择了Linq,因为它内置于框架中。对于那些说它不会得到微软支持的人来说...... LinqToSql将被逐步淘汰。我相信其中一个计划是将其吸收到实体框架中。

我现在正在使用实体框架。它也使用linq,基本上它就像linqToSql一样,如果你选择使用它,它具有更大的灵活性和强大功能。

我倾向于避免使用第三方框架和内容,因为它们最终也会消亡。我相信他们有更多机会消亡,因为他们的生命来自有多少人对它感兴趣并使用它。他们的生活也严重依赖于它的主要作者/贡献者。

答案 5 :(得分:0)

linq对sql的最大风险是微软会厌倦并放弃它。有很多人猜测这种情况已经发生,只有实体框架才会更新。亚力克不会受此影响,更糟糕的是你有源代码进行编辑。

答案 6 :(得分:0)

我遇到了同样的情况。 LinQ更“视觉化”,你在vstudio中做所有事情,甚至Rob承认亚音速也有一些东西可以匹配它。

IEnumerable,LINQDatasource(带自动分页)和可视化建模使我确信选择Linq而非亚力士。

答案 7 :(得分:0)

您可能希望了解MS stops developing LINQ to SQ L时会发生什么,因为它似乎正在发生。 SubSonics最新版本比以前的版本更容易创建查询和更多可读性。