我正处于将CSharp类映射到数据库表的阶段。在与其他工具进行比较后,我决定使用NHibernate作为我的ORM工具。我之前从未用NHibernate做过一个真正的项目,现在正在考虑映射的替代方案,
ActiveRecord:根据项目的网站,使用ActiveRecord可以大大提高生产力。但是,我不喜欢向我的CSharp类添加属性的想法。毕竟,我的班级不应该对数据库关系有任何了解。通过使用ActiveRecord将我很好地分离的类绑定到ActiveRecord,如果我想在将来切换下划线DAO层实现,给我带来困难。
FluentNHibernate:FluentNhibernate是我开始映射时的第一次尝试。但我对这种方法也有一些问题。 1)我不喜欢编译为二进制文件的映射策略。我希望能够通过修改xml文件来更改映射。 2)FluentNHibernate的成熟度。 NHibernate已经存在了很长时间,并且拥有很多用户,所以我很熟悉它的成熟度。相比之下,FluentNhibernate相对年轻,并没有经过多少用户的测试。即使我可以深入到源头来修复出现的任何问题,但我对触及低级实现的技能感到不自在。 3)FluentNHibernate的文档可用性远远高于NHibernate。当我碰到坚硬的墙壁时,我想有一个地方可以去。
NHibernate:目前,我使用裸Nhibernate xml来进行映射。说实话,使用XML给我带来了巨大的麻烦。从字面上看,我必须避免仅仅扔掉.hbm.xml文件并每天多次获取ActiveRecord或FluentNHibernate的冲动。
所以,这就是我的困境:我是否应该全心全意地去做“让这个该死的东西完成!”;或者,我应该遵循“良好实践指南”来承受痛苦,并在以后相对容易的时间吗?
有任何意见吗?
答案 0 :(得分:4)