在学徒期间,我将NHibernate用于一些较小的项目,这些项目我大多是自己编写和设计的。现在,在开始一个更大的项目之前,讨论了如何设计数据访问以及是否使用ORM层。因为我仍在学徒生涯中,并且仍然认为自己是企业编程的初学者,所以我并没有真正尝试推动,因为将对象关系映射器用于数据库可以极大地简化开发。开发团队中的其他编码人员比我更有经验,所以我认为我会按照他们的意愿去做。:-)
但是,我不完全理解不使用NHibernate或类似项目的两个主要原因:
- 可以只使用SQL查询构建自己的数据访问对象,然后将这些查询复制到Microsoft SQL Server Management Studio中。
- 调试ORM可能很困难。
因此,我当然可以使用很多SELECT
s等构建我的数据访问层,但是在这里我错过了自动联接,延迟加载代理类以及如果表获得新列或获得列减少维护工作量的优势。重命名。(更新众多SELECT
,INSERT
并且UPDATE
查询与更新映射配置,并可能重构业务类和DTO的。)
另外,如果您不太了解框架,使用NHibernate可能会遇到无法预料的问题。例如,这可能是信任Table.hbm.xml,您可以在其中设置要自动验证的字符串长度。但是,我也可以想象“简单”的基于SqlConnection查询的数据访问层中的类似错误。
最后,上述那些论点真的是不对基于普通数据库的企业应用程序使用ORM的充分理由吗?他们/我可能错过了其他论点吗?
(我可能应该补充一点,我认为这就像第一个基于“ NET” / C#的“大型”应用程序,需要团队合作。良好的实践(在单元测试或持续集成等方面在Stack Overflow上被视为很正常) -到目前为止一直存在。)