我正在将我的CSharp类映射到数据库表的阶段。与其他工具比较后,我决定使用NHibernate作为我的ORM工具。我从来没有用NHibernate做过一个真正的项目,现在我正在考虑映射的替代方案,ActiveRecord:根据项目的网站,使用ActiveRecord可以显着提高生产力。但是,我不喜欢为我的CSharp类添加属性的想法。毕竟,我的课不应该有任何关于数据库关系的知识。通过使用ActiveRecord将绑定我很好地分离的类到ActiveRecord,并给我很难,如果我想在未来切换下划线DAO层实现。NHibernate或FluentNHibernate或ActiveRecord?
FluentNHibernate:FluentNhibernate是我开始映射时的第一次尝试。但我也有这个方法的一些问题。 1)我不喜欢我的映射策略编译为二进制文件。我希望能够通过修改xml文件来更改映射。 2)FluentNHibernate的成熟。 NHibernate已经存在了很长时间,并且拥有大量的用户,所以我对它的成熟度非常满意。相比之下,FluentNhibernate相对年轻,并没有被很多用户测试过。尽管我可以潜入源代码来解决所出现的问题,但我不熟悉触摸低级别实现的技能。 3)FluentNHibernate的文档可用性远远超过NHibernate。当我撞上坚硬的墙壁时,我希望有一个地方可以走。
NHibernate:目前,我正在使用裸Nhibernate XML来做映射。说实话,使用XML让我头痛不已。从字面上讲,我必须避免仅仅抛弃.hbm.xml文件,并且每天多次获取ActiveRecord或FluentNHibernate。因此,这里是我的困境:我应该用我的心去做:“完成这件该死的事情吧!”;或者,我是否应该遵循“良好实践指南”来承受现在的痛苦,并在稍后获得相对容易的时间?
有何评论?
谢谢你的回答。现在我将使用ActiveRecord。 – 2009-09-24 07:06:10