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

时间:2009-02-19 17:35:49

标签: c# .net orm data-access-layer

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

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

以下列出了我们正在查看的ORM以及我们最初的展示次数

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

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

7 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

我们目前使用的是SubSonic(2.0.3),它已经成为绝对的救星。我不能强调它是多么棒。但是,我们现在正在考虑因各种原因(可能是NHibernate或Entity)切换它。以下是我的优点和缺点:

优点:

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

缺点:

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

答案 2 :(得分:3)

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

如果您现在没有3周的时间来学习您选择的ORM(无论您选择哪种方式),您可能必须找到 3周后才会在未完全映射的情况下学习它你怎么想的呢。

如果你有一个中等复杂的模型,ORM是非平凡的。你最终需要知道你的ORM是如何工作的,所以你可以告诉它以你想要的方式映射事物。

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

答案 3 :(得分:1)

大多数人会对其中的一两个人有一些经验,但很少有人会接触到所有人。我建议您使用每个收藏夹进行概念验证。设置每个设置,每个ORM工具 n n 小时 n = n =无论您认为合理的时间多长。)不必实现整个对象模型,功能子集也可以。

当你完成时,你将完成设置和所有这些的使用。然后你可以写一个验尸报告,团队可以决定哪个具有最佳的疼痛特征比。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

我非常同意BryCoBat(upvoted)。我还想补充一点,如果您已经拥有Open Access,那么该公司很可能会让内部人员已经非常熟悉它,包括您在自己的域中查看的代码示例,包括琐碎和非平凡的任务。换句话说:用你所知道的。

答案 6 :(得分:0)

如果你没有使用Telerik控件,LINQ to SQL应该是选择快速学习的人 - 网上有大量不同的教程,视频,书籍。