翼度科技»论坛 编程开发 .net 查看内容

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

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
前言

接上一篇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
  1. //添加SqlServer依赖
  2. dotnet add package Microsoft.EntityFrameworkCore.SqlServer
  3. //添加MySQL依赖
  4. dotnet add package MySql.EntityFrameworkCor
  5. //添加Sqlite依赖
  6. 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可以自己定义,见名识意就好哦。后面的内容根据自己的实际情况修改就好。
  1. "ConnectionStrings": {
  2.     "MySqlDataBase": "Server=127.0.0.1;Port=3306;User Id=xxx;Password=xxx;Database=xxx"
  3.   }
复制代码
Program.cs文件中添加如下内容。其中"MySqlDataBase"为appsettings.json中定义的名字。MynetContext为你数据上下文类名。
  1. builder.Services.AddDbContext<MynetContext>(
  2.     options =>
  3.     {
  4.         options.UseMySql(builder.Configuration.GetConnectionString("MySqlDataBase"), new MySqlServerVersion(new Version(8, 0, 31)));
  5.     });
复制代码
SQL server

appsettings.json中添加下面内容,其中"MVCSqlContext"可以自己定义,见名识意就好哦。后面的内容根据自己的实际情况修改就好。
  1. "ConnectionStrings": {
  2.     "MVCSqlContext": "Server=localhost;Database=InfoUser;User ID=sa;Password=sa;"
  3.   }
复制代码
Program.cs文件中添加如下内容。其中"MVCSqlContext"为appsettings.json中定义的名字。MynetContext为你数据上下文类名。
  1. builder.Services.AddDbContext<MynetContext>(
  2.     options =>
  3.     {
  4.         options.UseSqlServer(builder.Configuration.GetConnectionString("MVCSqlContext"));
  5.     });
复制代码
SQLite

appsettings.json中添加下面内容,其中"DefaultConnection"可以自己定义,见名识意就好哦。后面的内容根据自己的实际情况修改就好。
  1. "ConnectionStrings": {
  2.     "DefaultConnection": "DataSource=app.db;Cache=Shared"
  3.   }
复制代码
Program.cs文件中添加如下内容。其中"DefaultConnection"为appsettings.json中定义的名字。MynetContext为你数据上下文类名。
  1. builder.Services.AddDbContext<MynetContext>(
  2.     options =>
  3.     {
  4.         options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"));
  5.     });
复制代码
补充:为防止有人不知道在Startup文件怎么写,这里给一个示例:
  1. public void ConfigureServices(IServiceCollection services)
  2.         {
  3.             services.AddRazorPages();
  4.             services.AddDbContext<PrizeContext>(options => options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
  5.         }
复制代码
注:下一篇将创建实体类,通过EFCore方式自动生成数据库。

来源:https://www.cnblogs.com/lym003/archive/2023/05/16/17405046.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具