2

我需要为一个项目选择一个 ORM,而我只有一些 NHibernate 经验。我一直在阅读 StackOverflow 的问答,与我的需求最相似的是What ORM for .net 我应该使用什么?,但我想对目前的产品有一个更充分的答案(链接来自 2009 年),并且也考虑到我项目的一些要点。

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

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

  • 我希望能够拆分数据访问层,这样拥有一两个模块的用户就不需要全部了。

  • 设计师将不胜感激。

  • 它将从大约 20 到 30 张桌子开始,并且在几年内,这个数字将增长数百。

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

  • 它不需要是一个单一的产品解决方案。NHibernate 和 Devart Entity Develop 之类的组合也受到欢迎。

  • 这个项目的团队也将有学生必须学习 C Sharp,他们中的一些人可能不知道 ORM 到底是什么,所以如果它很简单,或者至少基本的东西不是,那就太好了非常复杂(混合大量 lambda、反射、扩展方法等)。

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

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

4

3 回答 3

2

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

我与 NHibernate 一起工作,发现文档不完整、不一致,有时甚至丢失。大多数时候,我不得不为 Hibernate 使用文档,这些文档不适用于 NHibernate,只是类似的。

EF 可以做同样的事情并且比 NHibernate 更多,并且最新版本有 Migrations,这是缺失的(当我使用 NHibernate 时)。

于 2012-06-18T15:33:30.887 回答
1

考虑一下 Dapper:dapper-dot-net

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

缺乏文档,但那是因为它很简单。您可以在项目页面或类似的一些网站中找到一些使用示例

于 2012-06-18T15:44:22.913 回答
1

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

于 2013-10-17T15:36:32.510 回答