您如何决定使用哪种ORM?

您如何决定使用哪种ORM?,orm,data-layers,Orm,Data Layers,Castle活动记录? 普通无纤维酸盐? 亚音速? 实体? 像内提尔 我想用一个,但我知道的不够多,无法决定。Nhibernate似乎过于致命和复杂,但被广泛使用。亚音速似乎很简单。但它稳定吗?我有一个密码匠,有人指给我看Nettiers,它看起来也很整洁,但也很复杂。其他人如何评估和决定使用什么?你是否会制作简单的小项目,让每个项目都能看到其特点?Eeeny,Meenie,Miney,Moe 我喜欢NHibernate。事实上,它并没有那么复杂,它的灵活性令人惊讶,而且它不会用属性和其他不应该

Castle活动记录? 普通无纤维酸盐? 亚音速? 实体? 像内提尔


我想用一个,但我知道的不够多,无法决定。Nhibernate似乎过于致命和复杂,但被广泛使用。亚音速似乎很简单。但它稳定吗?我有一个密码匠,有人指给我看Nettiers,它看起来也很整洁,但也很复杂。其他人如何评估和决定使用什么?你是否会制作简单的小项目,让每个项目都能看到其特点?Eeeny,Meenie,Miney,Moe

我喜欢NHibernate。事实上,它并没有那么复杂,它的灵活性令人惊讶,而且它不会用属性和其他不应该存在的时髦东西污染对象模型


我发现active record模式不像domain模式那样适合静态类型语言,因为它会使模拟变得更复杂。

我也更喜欢NHibernate,并且同意如果你花一点精力学习它,你会发现它并不像最初出现的那么复杂。你可以走很长的路,而不必知道它的所有功能

但是,您应该始终为手头的工作选择正确的工具。如果你正在构建一个应用程序,它有一个接近真实领域模型的东西,那么NHibernate将是自动选择。您提到的其他对象不是真正的对象关系映射器,而是代码生成器。这本身并不一定是一件坏事,但你必须评估一种方法何时比另一种更合适,因为问题是“我如何选择”而不是“我应该选择什么”…:

我会先挑一个看起来最容易用的。 然后我会研究一下谷歌,看看它是否稳定。 然后我会自己对它进行压力测试,使用一些多线程的优点和具有不同类型的关系和继承的域结构

你也可以从中获得灵感 它是一个数据库性能基准,但主要用于java框架。如果你愿意的话,你可以将源代码改编成.net,这并不复杂


也就是说,我目前最喜欢的是ActiveRecord和LINQ。

我想决定哪一个的最好方法是尝试找到一个在您正在评估的ORM中有解决方案的常见问题。你会对编程范式、风格、代码量、复杂性等方面有一些想法

,但另一方面,考虑到OP对ORM的总体来说是新的,我猜他对该领域的首次尝试无论如何都会像ActiveRecord一样。之所以值得考虑Castle.ActiveRecord,仅仅是因为它提供了对nhibernate更温和的介绍。对我来说很好!我想我正在寻找一个代码生成器。有没有合适的工具使nhibernate的映射更容易?