你今天会为你的数据层选择什么,Linq还是Subsonic



我们准备开始一个全新的项目,没有遗留代码。我们过去确实使用过亚音速,我们对此很满意。但那是在林之前。

有人不得不面对同样的问题吗?

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

任何见解都值得赞赏。

SubSonic

优点:

  • 漂亮而简单
  • 脚手架

缺点:

  • 方法签名通常接受可能被滥用的字符串parms(尽管我们鼓励您使用DAO字符串常量)

请记住:

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

Linq To SQL

优点:

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

缺点:

  • 复杂。您需要学习像DataContext这样的新概念才能发挥作用

请记住:

  • 一些stackoverflow用户质疑Linq是否继续支持SQL

另请在此处评估ADO.NET实体框架。

我喜欢LINQ的一件事是自动处理联接,我认为SubSonic处理起来并不优雅。

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

将自动生成类似这样的SQL L

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

NHibernate怎么样?这真的不适合新项目吗?不过,来自Java的人会发现它很熟悉,您也可以将它与.NET2.0和Mono一起使用。

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

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

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

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

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

我也处于同样的情况。LinQ更"视觉化",你可以在vstudio中做任何事情,甚至Rob也承认亚音速有一些东西可以与之匹配

IEnumerable、LINQDatasource(带自动分页)和可视化建模说服了我选择Linq而不是Subsonic。

linq-to-sql最大的风险是微软会厌倦它并放弃它。有很多猜测认为这已经发生了,只有实体框架会更新。亚音速不会受到这种影响,更糟糕的情况是,你有进行编辑的源代码。

您可能想了解当MS停止开发LINQ to SQL时会发生什么,因为它似乎正在发生。与以前的版本相比,SubSonics的最新版本更容易创建查询,可读性更强。

相关内容

  • 没有找到相关文章

最新更新