哪个ORM最适合这里?

时间:2012-06-18 15:17:24

标签: c# .net orm

我需要为项目选择ORM,而我只对NHibernate有一些经验。我一直在阅读来自StackOverflow的Q& A,与我的需求最相似的是What ORM for .net should I use?,但我希望得到一个更适合现有产品的答案(链接来自2009年),并且也考虑到考虑我项目的一些要点。

对我来说最简单的解决方案是使用NHibernate,因为它已经成熟,功能丰富且我已经使用过它,但我更喜欢为项目选择最佳选项,即使我必须再次“学习”。

该项目将作为与SAP通信的核心开始。核心必须支持独立和/或共同依赖的模块,并且每个模块可能需要使用来自数据库的自己的数据。最后一步是实现我们使用的SAP部分。我需要的特征是前一个链接中的特征,这里还有一些需要考虑的事项:

  • 我希望能够拆分数据访问层,以便拥有一个或两个模块的用户不需要整个事情。

  • 设计师将不胜感激。

  • 它将从大约20-30个表格开始,并且在几年内,该数字将增加数百个。

  • 每张表的寄存器数量从两个或三个到150000+(极少数)不等。

  • IT不需要成为一个产品解决方案。 NHibernate和Devart Entity Develop等组合也很受欢迎。

  • 这个项目的团队也会有学生必须学习C Sharp,其中一些人可能不知道ORM究竟是什么,所以如果它很简单,或者至少是,基本的东西不是很复杂(混合吨lambdas,反射,扩展方法等)。

最后一个不是很重要。我希望这个具体到足以避免被关闭(我链接的问题仍然是开放的)。

编辑: - 它是一个桌面应用程序。 - 文档和社区也非常重要。

3 个答案:

答案 0 :(得分:2)

目前最流行的.Net ORM是实体框架。它来自Microsoft,在MSDN风格中有很好的记录。它符合您的标准。

我与NHibernate合作,发现文档不完整,不一致,有时会丢失。大多数时候我不得不使用Hibernate的文档而不是NHibernate,只是类似。

EF可以做同样的事情而不仅仅是NHibernate,而最新的版本还有Migrations,它缺少了(当我使用NHibernate时)。

答案 1 :(得分:1)

考虑一下Dapper:dapper-dot-net

Dapper是一个非常简单的ORM,由StackOverflow开发和使用。

缺乏文档,但这是因为它简单。您可以在项目页面或某些网站中找到一些用法示例,例如this

答案 2 :(得分:1)

我知道这是一个非常古老的问题,但我会为任何落在这里的人发布答案。查看SQL Data。它使用起来非常简单,功能非常强大,符合OP的所有要求。