与.NET 2.0 / 3.5一起使用的最佳免费ORM工具

时间:2008-10-15 20:07:14

标签: .net orm

我有兴趣为即将到来的项目使用Object-Relational Mapping包。该项目将作为ASP.NET应用程序开始,但将具有许多最终将与WinForms应用程序共享的功能。任何人都可以建议一些好的,免费的ORM包在ASP.NET和WinForms情况下都能很好地工作吗?

13 个答案:

答案 0 :(得分:11)

SubSonic并不像nHibernate那样广泛;相反,它是每个表数据访问层的直接Active Record 1类。

一些功能是查询工具,执行存储过程的能力和ASP.net中的脚手架应用程序。您可以在30分钟或更短的时间内启动并运行,只需很少的学习曲线和Config.app文件中的最小配置。

答案 1 :(得分:6)

我总是建议Castle ActiveRecord。它是NHibernate之上的一层。它在你提到的两种环境中都很有用。

答案 2 :(得分:5)

nHibernate对我有用,但这一切都取决于你所追求的。很多人不想完全使用DDD和单元测试路线。他们只是想要一些简单的东西来将他们的数据库映射到对象,以使代码更好一些。如果是这样,那么看看Subsonic,它可能更容易上手。

答案 3 :(得分:5)

我赞成Fluent NHibernate,它允许您在强类型C#中创建映射,而不是使用普通的NHibernate XML文件。它也允许你混合和匹配(你可以在代码和XML中使用映射)。

有一篇很好的入门文章here

答案 4 :(得分:4)

尝试,亚音速

你也可以使用Linq2Sql ORM。

答案 5 :(得分:3)

NHibernate的

答案 6 :(得分:2)

我没有调查ActiveRecord只是因为根据独立的服务器,它的执行速度不如许多其他ORM,并且它没有完整的Linq实现。

DataObjects.NET要求您的所有实体都是从特殊类派生的,但为了换取这一点,您可以获得可靠的性能和内存存储提供程序以及最完整的Linq实现。

我花了一个下午来筛选DBLinq的源代码。我的意见是不成熟的(许多Linq-To-SQL的功能根本没有实现),我不推荐它用于生产系统。

那么......如果你正在寻找一个免费,快速,开源,符合LINQ标准的ORM,那么DataObjects.NET是一个非常安全的选择。

答案 7 :(得分:2)

Checkout XmlDataMapper一个简单的免费ORM(LGPL许可证),与其他巨头相比,它的内存占用空间很小。 提供的示例项目应该足够好以便开始。

要集成XmlDataMapper,您需要做的只有4个小步骤

  1. 为表格创建业务实体/ DTO
  2. 使用表格和DTO之间的映射信息创建XML文件。
  3. 在配置中指定DTO和xml文件。
  4. 只需调用DTOConverter.Convert(dataReader)和其他此类方法将您的数据库记录转换为DTO / Business Entity

答案 8 :(得分:1)

尝试http://www.dbframeit.com提供的dbFrameIT。它非常易于使用,并提供免费的个人使用许可。

答案 9 :(得分:0)

我一直在使用SubSonic大约一年的时间用于少数几个ASP.NET应用程序以及一个WinForms应用程序。这是非常容易入手的,我还没有通过选择它“画到角落里” - 几乎总有一些方法可以做到你需要的,通常很容易。我估计它已经减少了我们开发时间的30%。不是真正的ORM工具,但可以提高生产力。

答案 10 :(得分:0)

请参阅此List of ORM tools ".Net"

它包含所有着名的.Net ORM工具

答案 11 :(得分:0)

我使用NHibernate和NHibernate Annotations。它运行良好 - 没有映射文件(entity.xml)。不幸的是,你必须在Log4net上需要一个小的xml文件。

答案 12 :(得分:0)

Habanero,伟大而强大的ORM。它是免费的(LGPL许可证),使用.net 2.0(这对我来说非常重要)并且有一个强大的工具可以从数据库生成模型(使用自定义类和属性名称,自定义验证等)。