gpt4 book ai didi

c# - 我应该手动编码 ADO.Net 数据库访问吗?

转载 作者:行者123 更新时间:2023-12-02 14:19:20 24 4
gpt4 key购买 nike

我对 .Net 游戏的了解确实很晚,而且正在努力学习 ADO.Net。我更喜欢学习如何以“正确的方式”进行数据访问。我在某个地方发现,手动编写自己的连接、数据适配器、数据集、数据表甚至用于更新、添加和删除的命令语句比使用 Visual Studios 数据向导更优越。我从阅读中了解到,有些事情只能通过编写自己的命令语句来完成,但我并不完全清楚那可能是什么。

我是否应该始终编写自己的连接、数据适配器、数据集和数据表?我的更新、插入和删除命令语句怎么样?我怎么知道什么时候应该手动编码?

最佳答案

没有正确或错误的方法。不过,我建议您首先以“困难的方式”做事,即为您需要的每个数据访问例程编写自己的代码。当然,这意味着您还需要了解并理解 SQL。最终,您可以使用/构建工具来按照您需要的方式生成所有代码。

您最好在代码中使用存储过程而不是 SQL 语句,因为存储过程提供了额外的抽象级别,甚至可以从数据层(当然还有业务层)中抽象数据库架构。

我使用了 ADO.NET 核心(即编写自己的数据访问代码等)。我将 DataSets/DataTable(如果必须的话)纯粹用作内存中的数据结构,而不使用它们进行自动更新/删除等操作。尽可能坚持使用 DataReader 将其转换为 DTO(用于数据检索方法)。对于数据修改方法,您的数据层应该获取 DTO 作为参数(如果只有一两个,则将简单数据类型作为参数)。

我个人使用工具来生成使用 ADO.NET core(而不是 EF 或 LINQ2SQL 等)的数据访问层代码。这是我个人的偏好,根据应用程序的大小,它对性能有很大的帮助,并且只需要深入了解两件事。您的数据库以及 SQL 和 C# 代码,无需了解抽象层和专用语言的细微差别(在某些情况下)。

在大型项目(和团队)中,将数据库架构和存储过程留给专门从事该领域的人员成为必要和要求,在这些情况下,使用 ADO.NET 核心也成为要求。

在我的博客上,我发布了一篇文章,其中介绍了一个生成所有代码的工具。该工具和源代码可供下载。该工具还为强类型数据读取器生成代码。这就是您使用 DataReader 的幕后原因,而在代码中,就强类型属性而言,它看起来/感觉像 DTO。

Data Access Layer CodeGen

DataReader Wrappers - TypeSafe

关于c# - 我应该手动编码 ADO.Net 数据库访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268482/

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