2012-06-18 89 views
2

我需要选择一个ORM的一个项目,我只有与NHibernate一些经验。我已经从StackOverflow的阅读Q & A,和最相似的我的需求是What ORM for .net should I use?,但我想有一个答案更充足了本产品(该链接为2009年),并且还考虑到一些要点我的项目。哪个ORM最适合这里?

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

该项目将开始为与SAP进行通信的核心。核心必须支持独立和/或相互依赖的模块,并且它们中的每一个都可能需要使用来自数据库的自己的数据。最后一步是实施我们使用的SAP部分。我需要的特点是从以前的链接者和这里有一些更多的东西心里有:

  • 我想能够拆分数据访问层,以便与一个或两个模块用户将不需要整个事情。

  • 设计师将不胜感激。

  • 它将开始与约20-30表和,在几年之内,这个数字将在几百增长。

  • 每表寄存器的量将来自两个或三个变化到150000+(很少)。

  • 它并不需要成为一个产品解决方案。像NHibernate和Devart Entity Develop这样的组合也是受欢迎的。

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

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

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

+0

您从未解释过为什么您确信ORM是适合您的正确解决方案。此外,这是一个网络或桌面项目? – ashes999

+0

我认为ORM是正确的解决方案,主要是因为它必须使用不同的数据库。 – CarlosJ

+0

这里有一篇关于为什么ORM不是一个好的解决方案的杰夫阿特伍德的文章。它链接到一个很长的文章,有更多的细节。看一看,并知道你正在进入:http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html – ashes999

回答

2

最流行的ORM对于.NET这些天是实体框架。它来自微软,在MSDN风格上有很好的文档记录。它符合你的标准。

我曾与NHibernate和发现文档是不完整的,不一致的,有时失踪。大多数情况下,我不得不使用Hibernate的文档,而不是NHibernate,只是类似。

EF可以做同样的事情和比NHibernate,最新版本有迁移,这是丢失(当我与NHibernate合作)。

+0

“MSDN样式很好地记录” ....我猜他们已经越来越好了。 – CaffGeek

+0

我想是的。最近才开始使用EF,并没有遇到与缺乏文档相关的问题,与NHibernate不同。 – trailmax

1

认为它是精巧的:dapper-dot-net

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

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

+1

+1。 @CarlosJ - 您提到,“我认为ORM是正确的解决方案,主要是因为它必须与不同的数据库一起工作。”如果是这种情况,像Dapper这样轻巧高效的东西将会有很好的优势。我的意思是,经常使用EF,我会编写存储过程来提高查询的性能,然后将存储的proc添加到EF模型中。但是,如果意图是构建一些与数据库无关的东西,那么始终编写存储过程将不是一个好策略。 –

+0

talles和@Steve Wortham谢谢,我会看看它,但最后一项不是很重要,因为我可以在开始时处理复杂的部分。 – CarlosJ

+0

@CarlosJ噢,我很抱歉,虽然我读到这很重要。 – talles

1

我知道这是一个非常古老的问题,但我虽然会为任何在此登陆的人发布答案。检查出SQL Data。它使用起来非常简单,非常强大,符合所有OP的要求。