8

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

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

这是我们正在查看的 ORM 以及我们的初步印象的列表

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

这是我们查看并排除的 ORM

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

7 回答 7

6

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

于 2009-05-04T16:45:24.303 回答
4

我们目前使用的是 SubSonic (2.0.3),它绝对是救命稻草。我不能强调它有多棒。但是,由于各种原因(可能是 NHibernate 或 Entity),我们现在正在考虑从它切换。这是我的优点和缺点:

优点:

  • 设置和使用非常简单。
  • 许多伟大而有用的工具和功能
  • 使用“约定优于配置”的理念,所以很少配置。它“正常工作”。(只要你按照它想要的方式做事...... :))

缺点:

  • 您的数据库设计与您的域设计紧密耦合。在您的数据库中进行更改,您需要更改您的代码/域设计。
  • 默认情况下,SubSonic 使用 ActiveRecord 模式进行所有数据访问,而不是 Repository 模式,这使得“抽象”变得更加困难。(虽然我相信在 v3.0 中你可以换掉默认的 ActiveRecord 模板来使用 Repository 模式)。
  • 许多关于 SubSonic 未来的悲观谣言四处流传。但谣言就是这样:谣言。
于 2009-02-19T18:06:10.300 回答
3

对于所有成对的便士,它可能值得:

如果您现在没有 3 周的时间来学习您选择的 ORM(无论您选择哪个),那么您可能必须在以后找到3 周的时间来学习它,因为它并不能完全按照您的想法映射。

如果您有一个中等复杂的模型,那么 ORM 就很重要。您最终需要知道您的 ORM 是如何工作的,以便您可以告诉它以您想要的方式映射事物。

当然,这是“了解你的工具”的另一种说法。:)

于 2009-02-19T17:41:42.917 回答
1

大多数人都会对其中的一两个有一些经验,但很少有人会接触到所有这些。我建议对你最喜欢的每一个进行概念验证。设置好每一个,每个 ORM 工具花费的时间超过n小时(n = 你认为合理的时间。)你不必实现你的整个对象模型,一个功能子集就可以了。

完成后,您将完成所有设置和一些使用。然后,您可以编写一个事后分析,团队可以决定哪个具有最佳的痛苦与特征比率。

于 2009-02-19T17:46:08.863 回答
1

使用 T4 模板创建您自己的模板。Internet 上有几种已建立的模式,尤其是对于 T4 模板。了解 T4 还可以让您编写出可能具有比宏更大范围但比编写自定义应用程序来生成所需脚本的范围更小的项目。希望这可以帮助!

于 2010-07-06T06:07:50.193 回答
0

我非常同意 BryCoBat(赞成)。我还想补充一点,如果您已经拥有 Open Access,那么公司内部的某个地方很可能已经有人对它非常熟悉,包括您在自己的领域中查看的用于琐碎和非琐碎任务的代码示例。换句话说:使用你所知道的。

于 2009-02-19T17:52:11.300 回答
0

如果您不使用 Telerik 控件,则应该选择 LINQ to SQL 进行快速学习 - 网络上有大量不同的教程、视频、书籍。

于 2013-08-30T09:15:07.363 回答