前言

接上一篇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项目连接数据库方式方法的更多相关文章

  1. Win10或Win8下ObjectARX2015 Wizard向导创建项目失败解决方法

    [原创]objectARX 2015 Wizard安装向导在Win8/win10下无法创建项目的解决方法总结by edata @2017-5-1objectARX 2015 Wizard安装向导在Wi ...

  2. Emacs中多个golang项目的配置方法

    概述 最近使用golang开发项目时, 发现有时需要同时进行多个golang项目. 在这种情况下, 如果把所有的项目都放在 GOPATH 之下, 不仅管理麻烦(因为各个项目需要提交到不同的代码库), ...

  3. JetBrains WebStorm打开多个项目project的方法

    JetBrains WebStorm打开多个项目project的方法File-->Settings-->Directories点击右侧 + Add content root,选择目录后即可 ...

  4. ipv6下jdbc的连接数据库方式

    ipv6下jdbc的连接数据库方式 MySQL: ipv4 Driver URL:           jdbc:mysql://127.0.0.1:3306/database   ipv6 Driv ...

  5. PL/SQL TOAD 不安装Oracle客户端连接数据库的方法

    不安装Oracle客户端连接数据库的方法 本机环境: win7 64位中文旗舰版 一.准备工作: 1)到ORACLE官网下载instantclient,下载地址:http://www.oracle.c ...

  6. JavaWeb之(1)Tomcat安装及项目的发布方法

    Tomcat安装及项目的发布方法 Tomcat安装 1.直接解压,然后找到bin/startup.bat 2.双击,如果出现命令行界面且最后一句为"信息: Server startup in ...

  7. Linux环境下将.net6项目部署到docker

    1.创建一个ASP.NET Core Web应用(MVC) 注意点:建议不用勾选单选框"启用Docker(E)",因为勾选后,涉及到Docker-Desktop的安装,可能会引起本 ...

  8. Eclipse导入Android项目的正确方法

    转自Eclipse导入Android项目的正确方法 看网上流传的Eclipse导入项目的方法都是在新建Android程序时使用"Create project form existing so ...

  9. eclipse安卓引入库项目的正确方法

    之前清单文件里theme主题老是改不成库项目里定义好的主题@style/Theme.AppCompat.Light,只能用默认主题@style/AppTheme <application and ...

  10. vue全家桶安装以及修改webpack配置新增vue项目启动方式

    一.安装node环境(自带npm) 下载地址 二.替换下载源 // 淘宝 NPM 镜像 npm install -g cnpm --registry=https://registry.npm.taob ...

随机推荐

  1. 网络安全(中职组)-B模块:服务远程控制

    任务四:服务远程控制任务环境说明:服务器场景名:20200609(关闭链接)服务器场景操作系统:未知服务器场景用户名:root服务器场景密码:Admin123 1.    通过本地PC中渗透测试平台K ...

  2. Spring--案例:数据源对象管理

    案例:数据源对象管理 对于已经学过数据库的我来说,这看起来就像是连接数据库的操作: 就像javaweb项目里面的db.properties文件的使用一样,我们需要先导入一个包,(我用的是Maven项目 ...

  3. 在jsp页面int和String类型的相互转换

    浅浅地来做一个对比吧! .java文件 int转成string类型:String s=String.valueOf(int m); String转成int类型:int m=Integer.parseI ...

  4. Maven学习笔记2:Maven核心概念

    一.Maven工程约定目录结构 (说是约定,既是说它是大多数人都遵守的规范,但不是强制的) 一个小例子,熟悉Maven目录结构 这是官网给的例子,可以复制它的pom.xml来修改 第一步:建立项目 按 ...

  5. 中兴AX5400Pro+ BUG

    中兴AX5400Pro+路由器管理页面已知两个功能出现BUG:1.[应用]栏目下的[父母控制]下的所有设置均不起作用.(更新固件V1.0.0.1B11.8000依然无效)2.[系统]栏目下的[备份配置 ...

  6. Spring配置类为什么要分Full和Lite模式

    本文基于Spring 5.2.15-RELEASE 关于Spring配置类的Full模式和Lite模式,如果没有仔细阅读过源码或者官方文档的话,估计很多人都不知道这个概念.所以我们先来解释下这两个概念 ...

  7. 《C++ STL编程轻松入门基础》溯源

    由一PDF文档(<认识 C++STL>--Vtech Electronic Ltd (SZ) VTE/TV2 terrcy tang)而来,以为不完整,寻求更完全版. 后搜索"第 ...

  8. 一些随笔 No.2

    数据库 单表VS多表联合 多表联合查询的优势区域在于敏捷开发,主要用于过于庞大却可拆分的储存需求 但是劣势也很明显:更多的查询约束条件会用掉数据库服务器额外的cpu/内存/io,也不方便更未来的分布式 ...

  9. pandas这dataframe结构

    认识DataFrame结构 DataFrame 一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表,所谓异构,指的是表格中每列的数据类型可以不同,比如可以 ...

  10. Java 框架面试题-Spring Boot自定义配置与自动配置共存

    Spring Boot 是一个快速开发框架,可以简化 Spring 应用程序的开发,其中自定义配置是其中一个非常重要的特性. 在 Spring Boot 中,自定义配置允许开发者以自己的方式来配置应用 ...