gpt4 book ai didi

database - 如何创建合适的数据库层?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:27 25 4
gpt4 key购买 nike

目前我使用了很多 ado.net 类(SqlConnection、SqlCommand、SqlDataAdapter 等)来调用我们的 sql server。那是个坏主意吗?我的意思是它有效。然而,我看到许多文章使用 ORM、nHibernate、subsonic 等来连接到 SQL。为什么那些更好?我只是想了解为什么我需要完全改变它?

更新:

我确实查看了以下关于将 nHibernate 与存储过程结合使用的教程。

http://ayende.com/Blog/archive/2006/09/18/UsingNHibernateWithStoredProcedures.aspx

但是在我看来,这是一种矫枉过正的方法。为什么我必须创建一个映射文件?即使我创建了一个映射文件并假设我的表发生了变化,那么我的代码也不会再工作了。但是,如果我使用 ado.net 返回一个简单的数据表,那么我的代码仍然有效。我在这里遗漏了什么?

最佳答案

使用基本的 ADO.NET 类没有任何问题。

您可能只需要做比必要的更多的手动工作。如果你例如使用 SqlCommand 和 SqlDataReader 从表中选择前 10 位客户,这取决于您迭代结果,提取每一项数据(如客户编号、客户名称等),然后您正在处理与数据库结构非常紧密,例如行和列。这对于某些场景来说很好,但在其他场景中工作量太大。

ORM 为您提供的是为您处理大量此类“繁重的工作”。您只需告诉它获取前 10 位客户的列表——作为“客户”对象。 ORM 将启动并获取数据(最有可能使用 SqlCommand、SqlDataReader),然后提取零碎的数据,并为您组装好、易于使用的“Customer”对象,这些对象更易于使用,因为它们是您的代码正在处理的内容 - 客户对象。

因此,使用 ADO.NET 绝对没有错,如果您知道它是如何工作的,这是一件好事 - 但 ORM 可以为您节省大量乏味、重复和无聊的繁重工作,让您专注于真正的业务问题在对象级别。

马克

关于database - 如何创建合适的数据库层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561049/

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