.NET6项目连接数据库方式方法

项目,数据库,方式,方法 · 浏览次数 : 94

小编点评

**前言** 本文介绍了连接数据库的字符串配置方式,包括数据库字符串的写入位置和方法。 **数据库字符串的写入位置** 数据库字符串的默认位置是在 `appsettings.json` 文件中。 **数据库字符串的写入方法** * `appsettings.json` 文件中添加 `ConnectionStrings` 对象。 * `connectionString` 属性中存储数据库字符串。 * 在 `Program.cs` 中使用 `Configuration.GetConnectionString()` 方法获取数据库字符串。 **示例** ```json { "ConnectionStrings": { "MySqlDataBase": "Server=127.0.0.1;Port=3306;User Id=xxx;Password=xxx;Database=xxx" } } ``` **其他模块的作用** * `Properties`:用于应用程序属性的配置。 * `DependencyInjection`:用于依赖注入的配置。 * `Controllers`:用于 MVC 控制器类的配置。 * `appsettings.json`:用于系统配置文件的配置。 **总结** 连接数据库的字符串可以通过 `appsettings.json` 文件的 `ConnectionStrings` 对象进行配置。建议将数据库字符串写入 `appsettings.json` 中,以便易于维护和管理。

正文

前言

接上一篇Linux系统下创建dotnet项目,这一篇我们聊聊.NET6环境下dotnet项目连接数据库的方式方法,包括数据库字符串该如何配置。看了很多博主写的文章,连接数据库字符串配置的方式和位置五花八门,这篇文章给大家介绍一下连接数据库字符串的配置方式方法,顺便介绍下一个新创建的dotnet项目的各个模块的作用。

各模块作用

在这里插入图片描述
① Properties -- launchSettings.json

launchSettings.json文件是 ASP.NET Core 应用特有的配置标准,用于应用的启动准备工作,包括环境变量,开发端口等。在launchSettings.json文件中进行配置和右键项目--【属性】--【调试】中所提交的更改的效果是一样的,并且支持同步更新。
②依赖项

依赖项组织了项目开发与运行时所需的DLL,分布在不同的类别下:包、分析器、框架、项目。
③ Controllers

Controllers 目录用于存放MVC编程框架下的控制器类文件。
④ appsettings.json

appsettings.json 是 ASP.NET Core 默认提供的系统配置文件。与 ASP.NET WeForm、ASP.NET MVC 中的 web.config 文件功能类似。

ASP.NET Core 支持利用环境变量来动态配置 JSON 文件。ASP.NET Core 引用了一个特定的环境变量 ASPNETCORE_ENVIRONMENT 来描述应用程序当前运行的环境。这个变量可以被设置为任何你喜欢的值,但是有三个值被约定使用: Development,Staging 和 Production。
⑤Program.cs

Program.cs 是 Asp.Net Core 的入口文件。它负责创建、配置和运行泛型主机(Host),ASP.NET Core应用程序需要在泛型主机中执行。
补充说明:有的同学创建的项目里面没有Program.cs,但是有Startup文件,也是一样的,只是写法略有不同。

添加依赖

添加依赖的命令是dotnet add package xxxx.xxx

//添加SqlServer依赖
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
//添加MySQL依赖
dotnet add package MySql.EntityFrameworkCor
//添加Sqlite依赖
dotnet add package Microsoft.Data.Sqlite.Core

连接数据库字符串到底该写在哪里

通过对各个模块作用的介绍,我们知道连接数据库的字符串肯定是写在appsettings.json文件里面,有的人把连接数据库字符串写在上下文类文件中,或者写在Program.cs文件中,也不是不可以,不过不是规范的写法。举个例子,当你的项目发布部署以后,要求更改新的数据库服务地址,怎么办?我们都知道.NET项目编译以后,所有.cs文件都会被编译为DLL文件,想修改里面的内容就需要重新编译,也就是说之前发布好的项目是不能用了,但是.json文件没有编译。如果你的连接数据库字符串写在Program.cs文件中,那么只能重新编译发布。如果连接数据库字符串写在了appsettings.json中,则只需要修改appsettings.json文件即可。现在知道连接数据库字符串到底该写在哪里了吧。
在这里插入图片描述
在这里插入图片描述
以上都是不规范的写法。

几种数据库的配置方法

下面逐一介绍MySQL、SQL server、sqlite数据的连接方式

MySQL

appsettings.json中添加下面内容,其中MySqlDataBase可以自己定义,见名识意就好哦。后面的内容根据自己的实际情况修改就好。

"ConnectionStrings": {
    "MySqlDataBase": "Server=127.0.0.1;Port=3306;User Id=xxx;Password=xxx;Database=xxx"
  }

Program.cs文件中添加如下内容。其中"MySqlDataBase"为appsettings.json中定义的名字。MynetContext为你数据上下文类名。

builder.Services.AddDbContext<MynetContext>(
    options =>
    {
        options.UseMySql(builder.Configuration.GetConnectionString("MySqlDataBase"), new MySqlServerVersion(new Version(8, 0, 31)));
    });

SQL server

appsettings.json中添加下面内容,其中"MVCSqlContext"可以自己定义,见名识意就好哦。后面的内容根据自己的实际情况修改就好。

"ConnectionStrings": {
    "MVCSqlContext": "Server=localhost;Database=InfoUser;User ID=sa;Password=sa;"
  }

Program.cs文件中添加如下内容。其中"MVCSqlContext"为appsettings.json中定义的名字。MynetContext为你数据上下文类名。

builder.Services.AddDbContext<MynetContext>(
    options =>
    {
        options.UseSqlServer(builder.Configuration.GetConnectionString("MVCSqlContext"));
    });

SQLite

appsettings.json中添加下面内容,其中"DefaultConnection"可以自己定义,见名识意就好哦。后面的内容根据自己的实际情况修改就好。

"ConnectionStrings": {
    "DefaultConnection": "DataSource=app.db;Cache=Shared"
  }

Program.cs文件中添加如下内容。其中"DefaultConnection"为appsettings.json中定义的名字。MynetContext为你数据上下文类名。

builder.Services.AddDbContext<MynetContext>(
    options =>
    {
        options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"));
    });

补充:为防止有人不知道在Startup文件怎么写,这里给一个示例:

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
 
            services.AddDbContext<PrizeContext>(options => options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
        }

注:下一篇将创建实体类,通过EFCore方式自动生成数据库。

与.NET6项目连接数据库方式方法相似的内容:

.NET6项目连接数据库方式方法

前言 接上一篇Linux系统下创建dotnet项目,这一篇我们聊聊.NET6环境下dotnet项目连接数据库的方式方法,包括数据库字符串该如何配置。看了很多博主写的文章,连接数据库字符串配置的方式和位置五花八门,这篇文章给大家介绍一下连接数据库字符串的配置方式方法,顺便介绍下一个新创建的dotnet

.NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移

前言 接上期文章《.NET6项目连接数据库方式方法》,有人问了我几个问题,现在就这几个问题,拓展延申一下创建实体类、数据库。把ORM框架和数据迁移都写进去。 安装ORM框架,这里我们采用EFCore 安装EFCore 我的项目是在Linux上创建的,使用的是vscode开发工具远程开发。为了方便大家

Linux系统上创建.NET6项目(通过命令行(CTL)方式)

前言 平时大家创建项目基本上都是借助开发工具创建,比如visual studio,visual studio code,今天我们在Linux系统上,通过命令行的形式创建.NET6项目。 版本介绍 系统版本:Ubuntu22.04 SDK版本:.NET6 安装.NET环境 # 升级系统 sudo ap

.Net 中间件 - 新开源代码生成器 -ReZero

ReZero AP ReZero是一款.NET中间件 : 全网唯一界面操作就能生成API , 可以集成到任何.NET6+ API项目,无破坏性,也可让非.NET用户使用exe文件 ReZero生成器功能简介 1、表文档导出:支持目录导航 2、在创建表、在线建库 3、一键导入现有表 4、模版在线调试

开源低代码框架 ReZero API 正式版本发布 ,界面操作直接生成API

一、ReZero简介 ReZero是一款.NET中间件 : 全网唯一界面操作就能生成API , 可以集成到任何.NET6+ API项目,无破坏性,也可让非.NET用户使用exe文件 免费开源:MIT最宽松协议 , 一直从事开源事业十年,一直坚持开源 1.1 纯ReZero开发 适合.Net Core

如何将 Autofac 整合进 Net6.0 Core MVC 项目中

一、前言 1、简而言之 Asp.Net Core Mvc,我也用了很长一段时间了,它现在的编程模型和方式还是特别棒的,都是组件开发,什么都可以替换,当然了,您别抬杠,有些还是不能替换的。自从我们进入了跨平台开发的时代,IOC容器也成了一个不可或缺的东西了。微软为我们提供了一个默认实现,那就是 ISe

.Net6新版本的AssemblyLoadContext 加载程序集和卸载程序集

.Net6新版本的AssemblyLoadContext 加载程序集和卸载程序集 准备俩个项目 第一个是控制台 第二个项目是类库 类库项目中只有一个示例class 将类库的代码生成dll 并且设置属性为复制到输出目录 using System.Runtime.Loader; var domain =

ASP.NET Core设置URLs的几种方法,完美解决.NET 6项目局域网IP地址远程无法访问的问题

近期在dotnet项目中遇到这样的问题:.net6 运行以后无法通过局域网IP地址远程访问。后查阅官方文档。整理出解决问题的五种方式方法,通过新建一个新的WebApi项目演示如下: 说明 操作系统:Ubuntu 22.04.2 运行时:.NET 6 开发工具:Visual Studio 2202 新

QShop商城-开发规范

QShop商城-项目介绍 QShop商城,是全新推出的一款轻量级、高性能、前后端分离的电商系统,支持微信小程序,前后端源码100%开源,完美支持二次开发,让您快速搭建个性化独立商城。 技术架构:.Net6/7、WebAPI、Swagger、NUnit、VUE、Element-UI、Ant Desig

NET6使用AutoFac依赖注入(仓储模式)

第一次使用autofac,然后net6最新长期支持的,就想着在net6的基础上使用autofac,我对依赖注入理解很差,一知半解的搞了好久。好在有了一点点的头绪,记录下省的以后忘记(突然发现自己以前用过的东西忘了好多……) 1.首先你要有个仓储模式的项目、这个自己搭建吧 2.在Program.cs文