gpt4 book ai didi

c# - 有充分的理由不使用 ORM 吗?

转载 作者:IT王子 更新时间:2023-10-29 03:35:40 26 4
gpt4 key购买 nike

<分区>

学徒期间,我用过NHibernate对于我主要自己编码和设计的一些较小的项目。现在,在开始一些更大的项目之前,讨论了如何设计数据访问以及是否使用 ORM 层。由于我仍处于学徒期并且仍然认为自己是企业编程的初学者,所以我并没有真正尝试插入我的观点,即使用数据库的对象关系映射器可以大大简化开发。开发团队的其他程序员比我更有经验,所以我想我会照他们说的去做。 :-)

但是,我不完全理解不使用 NHibernate 或类似项目的两个主要原因:

  1. 可以使用 SQL 查询构建自己的数据访问对象,然后将这些查询从 Microsoft SQL Server Management Studio 中复制出来。
  2. 调试 ORM 可能很困难。

所以,当然我可以用很多 SELECT 等来构建我的数据访问层,但在这里我错过了自动连接、延迟加载代理类和较低维护工作量的优势如果表获得新列或列被重命名。 (更新大量 SELECTINSERTUPDATE 查询与更新映射配置并可能重构业务类和 DTO。)

此外,如果您不太了解框架,使用 NHibernate 可能会遇到无法预料的问题。例如,这可能是信任 Table.hbm.xml,您在其中设置字符串的长度以自动验证。但是,我也可以想象在“简单的”基于 SqlConnection 查询的数据访问层中存在类似的错误。

最后,上面提到的那些论点真的是不将 ORM 用于基于数据库的重要企业应用程序的充分理由吗?他们/我可能错过了其他论点吗?

(我可能应该补充一点,我认为这就像第一个需要团队合作的“大型”基于 .NET/C# 的应用程序。良好实践在 Stack Overflow 上被视为非常正常,例如单元测试或持续集成, 到目前为止这里还不存在。)

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com