.NET Core 数据库DB First自动生成,Sqlite,sql server,Mysql

news2024/10/6 22:24:11

文章目录

  • 前言
  • 数据库ORM代码自动添加
    • 前期准备
      • 安装Nuget
    • Sql server
    • Mysql
    • Sqlite
    • 查询结果

前言

.NET Core是C# .NET 未来发展的必然趋势,C# 要像Java一样跨平台运行。这里解决一个.NET core 会遇到的问题,如何添加ORM框架。

ORM是数据库对象映射关系模型,简单来说满足一下两个重要特点:

  • 数据表和代码实体对象完全一致
  • 用代码生成Sql语句

以前在.NET Framwork 上面的时候,我们可以通过添加 ADO.NET文件来自动生成。但是在.NET core 版本无法添加,因为其依赖于.NET Framework。而且默认只支持sql server。我们其它常用的数据库,例如Mysql,sqlite都不支持。

数据库ORM代码自动添加

前期准备

先新建.NET core控制台文件

在这里插入图片描述

安装Nuget

  • Microsoft.EntityFrameworkCore
    • EF基础框架
  • Microsoft.EntityFrameworkCore.Design
    • EF生成器,用于生成代码
  • Microsoft.EntityFrameworkCore.Tools
    • EF管理工具,用于管理数据库版本,例如Mysql,sql server

在这里插入图片描述

Sql server

安装 Microsoft.EntityFrameworkCore.SqlServer
在这里插入图片描述

在控制台执行以下语句

Scaffold-DbContext 'Data Source=.;Initial Catalog=你的数据库;integrated security=True ;TrustServerCertificate=true; ' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context 你的数据库DbContext

解析该语句

  • Scaffold-DbContext :EF.Core 自动脚本执行语句
  • ‘Data Source …’:数据库连接串,如果是非本机数据库要添加用户名和密码
  • Microsoft.EntityFrameworkCore.SqlServer:数据库管理工具
  • -OutputDir Models 输出文件
  • Context:ORM的Context名称

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

Mysql

安装 MySql.EntityFrameworkCore,MySql.Data

在这里插入图片描述
Tips:Mysql包是由Oracle公司提供的

Scaffold-DbContext "server=localhost;userid=用户名;pwd=密码;port=3306;database=数据表;sslmode=none;" MySql.EntityFrameworkCore -OutputDir 文件夹路径 -Context 你的Context

Sqlite

安装 Microsoft.EntityFrameworkCore.Sqlite

在这里插入图片描述

生成指令

Scaffold-DbContext "Data Source=文件位置" Microsoft.EntityFrameworkCore.Sqlite -OutputDir DB/Sqlite -Context SqliteDbContext

Tips:这里的连接地址是文件地址,因为Sqlite是本地数据库,不是网络数据库

查询结果

因为截图按钮会隐藏Debug信息,所以这里就拍照片了

在这里插入图片描述
这样我们就大大减轻了我们代码的工作量。

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

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

相关文章

Anaconda的安装和配置

对于自学Python的小伙伴来说,在刚开始,我们就得要安装Python以及python的库,但是我们可以通过安装Anaconda很好地解决这一难题,给我们初学者节省很多令人头疼的环境安装问题,今天我就为大家分享下Anaconda的介绍&#…

什么是加密领域的 Web 3.0?

随着科技的不断进步和互联网的发展,我们正逐渐迈入数字经济时代。在这个时代中,加密领域的Web 3.0成为了一个备受关注的话题。从区块链技术到加密货币,从去中心化应用程序到智能合约,这些新兴技术正在改变着我们对互联网的认知。本…

仓库24代拣货标签——功能特点

1. 通过无线方式快速刷新屏幕; 2. 移动式功能用法(自动切换基站进行通信); 3. 电量低于 50%的情况下,提供外接供电,可以对电池进行充电,充电时会亮红灯,充满后亮绿灯(如果…

Vue3挂载全局方法及组件中如何使用

文章目录 前言一、在mian.ts(mian.js)中配置全局变量1、如何封装 二、如何调用1.template中调用2.在script标签中如何拿到 前言 在Vue3项目中,需要频繁使用某一个方法。配置到全局感觉会方便很多。 例如:因为很多页面都需要对时…

openEuler 22.03 LTS登录AWS Marketplace

openEuler 22.03 LTS镜像正式登录AWS Marketplace,目前在亚太及欧洲15个Region开放使用,后续将开放更多版本和区域,openEuler 22.03 LTS AMI(Amazon Machine Images)由openEuler社区提供支持。 点击查看具体使用指导:https://www…

软件高效自动化部署:华为云部署服务CodeArts Deploy

随着互联网、数字化的发展,公司机构与各类企业往往需要进行大量频繁的软件部署,部署设备类型多样,如:本地机器、云上裸金属服务器、云上虚拟机与容器等。 面对多种部署模式、分布式复杂运行环境,该如何用最短时间、高…

华为战略方法论:BLM模型之战略意图(限制版)

目录 前言 案例 BLM模型 专栏列表 CSDN学院 个人简介 前言 对于任何一家企业来说,即便你没有清晰的战略规划。 一般也都是会有战略意图的。 战略意图具体是指你主观想要达成什么样的期望或者是状态。 换句话说,如果没有这种期望,你…

记录--盘点前端实现文件下载的几种方式

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前端涉及到的文件下载还是很多应用场景的,那么前端文件下载有多少种方式呢?每种方式有什么优缺点呢?下面就来一一介绍。 1. 使用 a 标签下载 通过a标签的download属…

STM32 Proteus仿真空气质量检测环境监测苯PM2.5 MQ135温度湿度 -0068

STM32 Proteus仿真空气质量检测环境监测苯PM2.5 MQ135温度湿度 -0068 Proteus仿真小实验: STM32 Proteus仿真空气质量检测环境监测苯PM2.5 MQ135温度湿度 -0068 功能: 硬件组成:STM32F103R6单片机 LCD1602显示器DHT11温度湿度多个按键蜂鸣…

简要介绍 | 通信感知一体化:探索信息与通信技术的新边界

注1:本文系“简要介绍”系列之一,仅从概念上对通信感知一体化技术进行非常简要的介绍,不适合用于深入和详细的了解。 通信感知一体化:探索信息与通信技术的新边界 通信感知一体化(ISAC):从入门到…

H3C端口镜像

端口镜像简介 端口镜像通过将指定端口或CPU的报文复制到与数据监测设备相连的端口,使用户可以利用数据监测设备分析这些复制过来的报文,以进行网络监控和故障排除。 基本概念 镜像源镜像源是指被监控的对象,该对象可以是端口或单板上的CPU&am…

Vue-cli脚手架

文章目录 前言搭建Vue-Cli脚手架安装npm可能出现的报错及解决办法国内淘宝镜像服务器 全局安装 vue-cli创建 Vue-Cli工程创建 Vue 的基本模板 总结终端打开/关闭操作创建Vue-Cli工程过程 前言 提示:这里可以添加本文要记录的大概内容: Vue CLI是一个基…

数字工厂管理系统如何解决汽配企业的管理痛点

在现代汽车产业中,汽车配件企业扮演着至关重要的角色。然而,许多汽配企业面临着管理痛点,如生产效率低下、库存管理困难、供应链不透明等。为了解决这些问题,越来越多的汽配企业转向数字工厂管理系统。本文将探讨数字工厂管理系统…

如何在Microsoft Word中快速对齐名字

对齐方式决定段落边缘的外观和方向:左对齐文本、右对齐文本、居中文本或对齐文本,这些文本沿左右边距均匀对齐。例如,在左对齐(最常见的对齐方式)的段落中,段落的左边缘与左边距齐平。 在 Microsoft Word 中,还有不少的人用敲空格的方式来对齐的目的,特别是两个字的姓名…

Blender初学者入门:做一个魔方

文章目录 安装和使用基本操作物体属性材质 安装和使用 由于Blender是开源免费的,所以可直接在官网下载,正常安装,没有坑点。 在打开Blender后,创建新文件,选择General,就会得到一个立方体,而界…

故障处理:执行 CreateHandle() 时无法调用值 Dispose()。

在关闭主窗体时,线程仍在运行,直接关闭主窗体可能报错,故直接关闭线程,并清空主进程内控件。

如果数据孤岛不打破,企业数字化终难实现

当前市场经济下,企业、品牌、商品的增多,使得市场竞争愈发激烈;用户和市场的需求也在日益发生改变,对企业提出了精细化、以用户为中心的新需求;人口增长减缓、物质生活富裕,让用户更加关注服务属性。这一切…

六、consumer源码解读

Consumer源码解读 本课程的核心技术点如下: 1、consumer初始化 2、如何选举Consumer Leader 3、Consumer Leader是如何制定分区方案 4、Consumer如何拉取数据 5、Consumer的自动偏移量提交 Consumer初始化 从KafkaConsumer的构造方法出发,我们跟踪到…

40.RocketMQ之高频面试题大全

消息中间件如何选型 RabbitMQ erlang开发,对消息堆积的支持并不好,当大量消息积压的时候,会导致 RabbitMQ 的性能急剧下降。每秒钟可以处理几万到十几万条消息。 RocketMQ java开发,面向互联网集群化功能丰富,对在线业…

Spark学习---5、SparkSQL(概述、编程、数据的加载和保存)

这是本人的学习过程,看到的同道中人祝福你们心若有所向往,何惧道阻且长; 但愿每一个人都像星星一样安详而从容的,不断沿着既定的目标走完自己的路程; 最后想说一句君子不隐其短,不知则问,不能则…