要运行什么ORM:telerik Open Access VS Subsonic VS linq to sql VS Active Record

Bob*_*tor 8 .net c# orm data-access-layer

我们正在研究使用ORM,我想要一些意见/比较

我们对ORM的基本标准是:易于使用/配置(简短的学习曲线),灵活,能够将其抽象出来,易于维护

以下列出了我们正在查看的ORM以及我们的初步印象

  1. 开放存取 - 对于简单的东西来说似乎很容易,但似乎没有很大的灵活性,成本不是我们已经拥有它的问题
  2. Ling to SQL - 看起来非常简单易用,但缺少一些功能
  3. Active Record - NHibernate变得简单
  4. SubSonic - 看起来非常丰富,但并没有真正玩过它

这是我们已经查看并排除的ORM

  1. 实体仍处于测试阶段
  2. NHibernate有很多学习曲线(我们没有3周时间来学习它)

小智 6

我想你应该看看DataObjects.NET(http://www.x-tensive.com).它的功能丰富且易于使用.但是,它确实将您与对象模型联系在一起,因为它根据对象模型的外观决定数据库结构应该是什么.话虽这么说,如果你想能够忽视数据库的存在,那就太好了.我们已经使用它多年并取得了巨大的成功.


Ale*_*rto 4

我们目前使用 SubSonic (2.0.3),它绝对是救星。我无法充分强调它是多么的棒。然而,由于各种原因,我们现在正在考虑放弃它(可能转向 NHibernate 或 Entity)。这是我的优点和缺点:

优点:

  • 设置和使用非常简单。
  • 许多很棒且有用的工具和功能
  • 采用“约定优于配置”的理念,因此配置很少。它“只是有效”。(只要你按照它想要的方式做事......:))

缺点:

  • 您的数据库设计与您的领域设计紧密耦合。对数据库进行更改,您需要更改代码/域设计。
  • 默认情况下,SubSonic 使用 ActiveRecord 模式进行所有数据访问,而不是 Repository 模式,这使得“将其抽象出来”变得更加困难。(尽管我相信在 v3.0 中您可以替换默认的 ActiveRecord 模板以使用存储库模式)。
  • 关于 SubSonic 的未来,有很多悲观的谣言。但谣言只是:谣言。