7

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

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

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

任何见解表示赞赏。

4

8 回答 8

11

亚音速

优点:

  • 漂亮又简单
  • 脚手架

缺点:

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

记住:

  • 需要网站项目来进行无代码、无需干预的模型生成(需要 BuildProvider)。

链接到 SQL

优点:

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

缺点:

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

记住:

还要评估ADO.NET Entity Framework此处

于 2008-10-30T15:06:24.020 回答
3

我喜欢 LINQ 的一件事,我不认为 SubSonic 处理得那么优雅,就是自动处理连接。

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

会自动生成这样的SQLL

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
于 2008-10-30T14:45:58.273 回答
1

NHibernate 呢?新项目真的不适合吗?不过,来自 Java 的人会觉得它很熟悉,您也可以将它与 .NET 2.0 和 Mono 一起使用。

于 2008-10-30T17:01:56.080 回答
1

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

我现在已经在 5 个主要项目中使用了它,并且对我变得依赖它的速度印象深刻。

于 2008-11-06T00:40:06.427 回答
1

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

我现在正在使用实体框架。它还使用 linq,基本上它与 linqToSql 完全一样,如果您选择使用它,则具有更大的灵活性和功能。

我倾向于避免使用第 3 方框架和规范,因为它们最终也会消失。我相信他们有更多的机会消亡,因为他们的生命来自于有多少人对它感兴趣并使用它。他们的生活也很大程度上依赖于它的主要作者/贡献者。

于 2008-11-06T00:48:29.203 回答
0

linq to sql 最大的风险是微软会厌倦它并放弃它。有很多猜测认为这已经发生了,并且只会更新实体框架。Subsonic 不会受此影响,更糟糕的是,您拥有进行编辑的源代码。

于 2008-10-30T15:42:30.030 回答
0

我也有同样的情况。LinQ 更“可视化”,你可以在 vstudio 中做所有事情,甚至 Rob 也承认 subsonic 有一些东西可以与之匹配。

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

于 2008-10-30T16:07:03.117 回答
0

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

于 2008-10-30T20:40:53.657 回答