C# .NET ADO.NET介绍和如何使用

news2025/2/12 16:54:14

文章目录

  • 环境配置
  • ADO.NET简介
    • ADO.NET是什么
      • 面向过程和面向对象
      • 什么是ORM
    • ADO.NET用于解决什么问题
      • 优化开发效率
      • 对已存在的数据库,设计多个程序
      • 对开发中的程序,动态设计数据库,同步更新
  • ADO.NET如何使用,以sql server为例
    • ADO.NET如何创建
    • ADO.NET如何增删改查
    • ADO.NET同步数据库更新
    • ADO.NET如何扩展到其它数据库

环境配置

  • .NET Framework 4.7.2
  • Visual Studio 2022
  • Sql server 2008

新建项目

在这里插入图片描述

ADO.NET简介

ADO.NET是什么

我们看一下visual studio 里面ADO.NET文件

在这里插入图片描述

ADO.NET是实体数据模型,是ORM对象文件。ORM,即Object-Relational Mapping(对象关系映射)。

ORM实际上是对业务的简化。就想面向过程到面向对象的转变一样。

面向过程和面向对象

  • 面向过程:程序员需要对每一个操作进行描述
  • 面向对象:每一个操作都要有一个对象主体,程序员要将业务的操作改成对象发出的操作

举例

面向过程

拿起鸡蛋
打开冰箱门
把鸡蛋放进冰箱
冰箱门关上

面向对象:这里有三个对象,鸡蛋,我,冰箱

我.拿起(鸡蛋)
冰箱.打开()
冰箱.放入(鸡蛋)
冰箱.关闭()

什么是ORM

ORM也是同样的想法。就是数据库存储的表和我程序的对象完全一致。这样存入和取出也方便

无映射关系

程序 对应关系转化 数据库 增删改 程序 对应关系转化 数据库

有映射关系

程序 数据库 增删改 程序 数据库

ORM默认映射关系

  • 数据表名和程序对象名一致
  • 数据表列和程序对象的属性在个数,名称,数据类型一致

ADO.NET用于解决什么问题

优化开发效率

因为数据库是程序对象完全一致,所以我们只需要设置数据库或者程序对象,另外一部分会有程序自动对应。数据库或者对象的先后顺序称之为DB First和 Code First。之后我们不需要了解程序和数据库之间的对应关系了。
而且Entity Fromwork封装了一些数据库操作,利用程序生成sql语句,减少了我们sql语句拼写的错误

对已存在的数据库,设计多个程序

有时候我们需要对已存在的数据库设计一个小程序,例如数据库批量修改,数据导出。里面包含一些逻辑,无法或者很难用sql语句直接写出,而且很容易出错,也不能断点调试。这里我们就可以使用ADO.NET,直接生成对应映射文件。这样就不需要我们从头一个一个写数据库对应实体。

对开发中的程序,动态设计数据库,同步更新

我们在开发程序中,经常会出现数据库需要增加/删除字段的需求。ADO.NET支持动态同步。增加效率和避免出错

ADO.NET如何使用,以sql server为例

ADO.NET默认支持Sql server
在这里插入图片描述

ADO.NET如何创建

首先创建一个sql server数据库,如何创建这里不再赘述

在这里插入图片描述

右键添加,选择新建项
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

ADO.NET如何增删改查

ASP.NET Core 3.1系列(20)——EFCore中的删除实体操作

ADO.NET同步数据库更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

但是有bug

在这里插入图片描述

个人推荐,删除再重新导入

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
再重新导入

在这里插入图片描述
属性正确

在这里插入图片描述

ADO.NET如何扩展到其它数据库

如何扩展那是非常麻烦的,我目前只扩展了sqlite数据库,接下来打算扩展到mysql。

visual studio 2022,ADO.NET 实体数据模型添加 sqlite数据库对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/639794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多元回归预测 | Matlab哈里斯鹰算法(HHO)优化随机森林的数据回归预测,HHO-RF回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab哈里斯鹰算法(HHO)优化随机森林的数据回归预测,HHO-RF回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清…

IPV6综合实验

拓扑结构: 要求: 1、两个局域网基于6 to 4 tunnel可达,公网使用IPV4地址 2、R1可以访问R3的环回 3、保障网络更新安全,全网可达 使用的设备:8台路由器 解决网络拓扑: 1、确定广播域的个数 2、分配网段 …

react---pubsub-js消息订阅与发布

pubsub是一个用Javascript编写的基于主题的发布/订阅库,适用于任意组件间的通信,需要先订阅再发布 ,在组件即将卸载时钩子函数中进行取消订阅。 1. 在线文档: https://github.com/mroderick/PubSubJS 2. 下载: 【npm install pubsub-js --sav…

MySQL数据库备份和还原

备份对于数据库而言是至关重要的。当数据文件发生损坏、MySQL服务出现错误、系统内核崩溃、计算机硬件损坏或者数据被误删等事件时,使用一种有效的数据备份方案,就可以快速解决以上所有的问题。MySQL提供了多种备份方案,包括:逻辑…

机器学习—逻辑回归

练习2:逻辑回归 介绍 在本练习中,您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法,来提高算法的鲁棒性,并用更复杂的情形来测试模型算法。 在开始练习前,需要下载如下的文件进行数据上…

自学黑客【网络安全】,一般人我还是劝你算了吧

十多年前还是高中生的时候开始搞安全的,刚开始是看大佬们在群里发黑页觉得很牛逼。然后慢慢开始学,当时还在网上问过IP和ID有什么区别,,, 后来慢慢开始学注入,日到了第一个站,是家卖钢琴的。放…

Linux 一“文”搞定Shell编程

又到了毕业季,又得去找实习工作。。。 最近在某直聘软件上找实习工作,看到有许多工作都需要会Shell编程的,然后自己对Shell编程也是一知半解,所以趁着最后还有半个月在校时间,索性学习一下! Shell是一个命…

Apache Hadoop概述

Hadoop是一个开源的分布式计算框架,它可以处理大规模的数据集。Hadoop的核心是HDFS(Hadoop Distributed File System)和MapReduce编程模型。HDFS是一个高度容错性的系统,可以在数百台服务器上存储PB级别的数据。MapReduce是一种编程模型,它可…

css基础知识二:CSS选择器有哪些?优先级?哪些属性可以继承?

一、选择器 CSS选择器是CSS规则的第一部分 它是元素和其他部分组合起来告诉浏览器哪个HTML元素应当是被选为应用规则中的CSS属性值的方式 选择器所选择的元素&#xff0c;叫做“选择器的对象” 我们从一个Html结构开始 <div id"box"><div class"o…

k8s 探针

1.前言 Kubernetes探针(Probe)是用于检查容器运行状况的一种机制。探针可以检查容器是否正在运行&#xff0c;容器是否能够正常响应请求&#xff0c;以及容器内部的应用程序是否正常运行等。在Kubernetes中&#xff0c;探针可以用于确定容器的健康状态&#xff0c;如果容器的健…

Prometheus+Grafana安装极简教程

目录 初始化监控主机 安装go环境 安装Prometheus 安装Grafana 初始化被监控主机 监控主机配置监控被监控主机 课后 初始化监控主机 安装go环境 下载对应的go版本&#xff0c;解压&#xff0c;设置环境变量 export GOROOT/usr/local/go export PATH$PATH:$GOROOT/bin 执…

alist与Raidrive配置开机自动启动,开机就可以拥有网盘硬盘!

目录 1. alist配置为开机自动启动服务1.1 制作一个alist启动命令行1.2 将VBS添加到开机启动项 2. Raidrive设置开机启动2.1 进入设置2.2 添加到启动项 总结 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 1. al…

大数据治理入门系列:数据质量

无论您是数据领域的专业人员&#xff0c;还是其他领域的非专业人士&#xff0c;也许都曾遇到过数据不完整、数据过时、数据不一致、数据不准确等问题。这些低质量的数据不仅没能解决最初的疑问&#xff0c;甚至还可能衍生出了其他问题。质量低劣的数据会影响数据分析结果&#…

代码随想录刷题第52天|LeetCode300最长递增子序列、 LeetCode674最长连续递增序列、LeetCode718最长重复子数组

1、LeetCode300最长递增子序列 题目链接&#xff1a;300最长递增子序列 1、dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。 2、递推公式&#xff1a; if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较&…

Rust X DatenLord l Rust China Conf 2023 倒计时!

Rust语言作为一种强调性能、安全和并发性的新的编程语言&#xff0c;吸引了越来越多的程序员想要尝试学习和使用Rust。达坦科技&#xff08;DatenLord&#xff09;旗下的开源项目Xline &#xff08;用于元数据管理的分布式KV存储&#xff09;就是用Rust写就的&#xff0c;我们也…

android remount 工作原理简介

android remount 在调试android 系统的时候是个非常有用的调试手段&#xff0c; 有remount 的帮助&#xff0c; 可以轻松的修改系统分区的某些文件&#xff0c;或者在系统分区添加删除文件。但有时候remount 也会因为一些verity&#xff0c; checkpoint &#xff0c;和remount …

【python数据可视化】Matplotlib绘图练习(一)

目录 Matplotlib &#x1f947;Summary 获取源码&#xff1f;私信&#xff1f;关注&#xff1f;点赞&#xff1f;收藏&#xff1f; Python数据可视化的由来主要是因为数据可视化在数据分析领域扮演了至关重要的角色。这是因为&#xff0c;数据可视化能够更好地向人们展示大量…

电脑老是自动更新怎么办?教你一招彻底解决

前言 这两天有粉丝留言问我&#xff1a;电脑老是提示自动更新&#xff0c;而且关也关不掉&#xff0c;这该怎么办&#xff1f; 今天就教大家如何彻底关掉电脑的系统自动更新功能&#xff0c;以后永远不再自动更新。 一、关闭更新服务 1. 同时按下键盘winR键&#xff0c;打开运…

SQL 知识你知道吗:公共表表达式(CTE)

一、概念 公共表表达式&#xff08;CTE&#xff09;是一种临时命名查询结果集的方式&#xff0c;可以在一个查询语句中多次引用。CTE在查询语句中定义&#xff0c;可以在查询语句中的任何位置使用&#xff0c;并且只在查询语句执行期间存在。CTE通常用于简化复杂的查询&#x…

1个暑假能学会多少网络安全技能?

现在可以看到很多标题都声称三个月内就可以转行网络安全领域&#xff0c;并且成为月入15K的网络工程师。那么&#xff0c;这个暑假的时间能学多少网络安全知识&#xff1f;是否能入门网络安全工程师呢&#xff1f; 答案是肯定的。 虽然网络完全知识是一门广泛的学科&#xff…