Castle Active Record? 简单的NHibernate? 亚音速? 实体? 像Nettiers这样的东西?
我想用一个,但我不知道决定。 Nhibernate似乎过度杀戮和复杂,但广泛使用。亚音速似乎很简单。但它稳定吗?我有CodeSmith,我被指向Nettiers,它看起来也很整洁,但也很复杂。其他人如何评估和决定使用什么?你是否用每个项目制作小型简单项目才能看到这些功能? Eeeny,Meenie,Miney,Moe?
答案 0 :(得分:2)
我喜欢NHibernate。它实际上并不复杂,它具有惊人的灵活性,并且不会使用属性和其他不应该存在的时髦东西污染您的对象模型。
我发现活动记录模式与C#这样的静态类型语言不太匹配,就像域模式一样,因为它可以使模拟更复杂。
答案 1 :(得分:1)
我也更喜欢NHibernate,并同意如果你付出一点努力来学习它,你会发现它并不像它最初出现那么复杂。你可以走很长的路,而不必了解它的所有功能。
但是,您应该始终为手头的工作选择合适的工具。如果您正在构建一个接近真实域模型的应用程序,那么NHibernate将自动选择IMO。你提到的其他人不是真正的对象关系映射器,而是代码生成器。这本身并不一定是坏事,但你必须评估一种方法何时比另一种方法更合适
答案 2 :(得分:0)
因为问题是“我该怎么选择”而不是“我应该选择什么”......:
我会选择最容易使用的那个。 然后我在谷歌上研究一下,看看它是否稳定。 然后我会自己进行压力测试,有一些多线程的优点和一个具有不同类型的关系和继承的域结构。
你也可以受到http://polepos.sourceforge.net/的启发 它是数据库性能基准测试,但主要用于java框架。如果你准备好了,你可以将源代码改编为.net,它并不是非常复杂。
那就是说,我目前最喜欢的是ActiveRecord和LINQ。
答案 3 :(得分:0)
我认为决定哪一个的最佳方法是尝试找到在您正在评估的ORM中有解决方案的常见问题。你会得到关于编程范式,风格,代码量,复杂性和那种东西的想法