前言
接上一篇Linux系統(tǒng)下創(chuàng)建dotnet項目,這一篇我們聊聊.NET6環(huán)境下dotnet項目連接數(shù)據(jù)庫的方式方法,包括數(shù)據(jù)庫字符串該如何配置??戳撕芏嗖┲鲗懙奈恼?,連接數(shù)據(jù)庫字符串配置的方式和位置五花八門,這篇文章給大家介紹一下連接數(shù)據(jù)庫字符串的配置方式方法,順便介紹下一個新創(chuàng)建的dotnet項目的各個模塊的作用。
各模塊作用
① Properties -- launchSettings.json
launchSettings.json文件是 ASP.NET Core 應用特有的配置標準,用于應用的啟動準備工作,包括環(huán)境變量,開發(fā)端口等。在launchSettings.json文件中進行配置和右鍵項目--【屬性】--【調(diào)試】中所提交的更改的效果是一樣的,并且支持同步更新。
②依賴項
依賴項組織了項目開發(fā)與運行時所需的DLL,分布在不同的類別下:包、分析器、框架、項目。
③ Controllers
Controllers 目錄用于存放MVC編程框架下的控制器類文件。
④ appsettings.json
appsettings.json 是 ASP.NET Core 默認提供的系統(tǒng)配置文件。與 ASP.NET WeForm、ASP.NET MVC 中的 web.config 文件功能類似。
ASP.NET Core 支持利用環(huán)境變量來動態(tài)配置 JSON 文件。ASP.NET Core 引用了一個特定的環(huán)境變量 ASPNETCORE_ENVIRONMENT 來描述應用程序當前運行的環(huán)境。這個變量可以被設置為任何你喜歡的值,但是有三個值被約定使用: Development,Staging 和 Production。
⑤Program.cs
Program.cs 是 Asp.Net Core 的入口文件。它負責創(chuàng)建、配置和運行泛型主機(Host),ASP.NET Core應用程序需要在泛型主機中執(zhí)行。
補充說明:有的同學創(chuàng)建的項目里面沒有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
連接數(shù)據(jù)庫字符串到底該寫在哪里
通過對各個模塊作用的介紹,我們知道連接數(shù)據(jù)庫的字符串肯定是寫在appsettings.json文件里面,有的人把連接數(shù)據(jù)庫字符串寫在上下文類文件中,或者寫在Program.cs文件中,也不是不可以,不過不是規(guī)范的寫法。舉個例子,當你的項目發(fā)布部署以后,要求更改新的數(shù)據(jù)庫服務地址,怎么辦?我們都知道.NET項目編譯以后,所有.cs文件都會被編譯為DLL文件,想修改里面的內(nèi)容就需要重新編譯,也就是說之前發(fā)布好的項目是不能用了,但是.json文件沒有編譯。如果你的連接數(shù)據(jù)庫字符串寫在Program.cs文件中,那么只能重新編譯發(fā)布。如果連接數(shù)據(jù)庫字符串寫在了appsettings.json中,則只需要修改appsettings.json文件即可?,F(xiàn)在知道連接數(shù)據(jù)庫字符串到底該寫在哪里了吧。
以上都是不規(guī)范的寫法。
幾種數(shù)據(jù)庫的配置方法
下面逐一介紹MySQL、SQL server、sqlite數(shù)據(jù)的連接方式
MySQL
appsettings.json中添加下面內(nèi)容,其中MySqlDataBase可以自己定義,見名識意就好哦。后面的內(nèi)容根據(jù)自己的實際情況修改就好。
"ConnectionStrings": {
"MySqlDataBase": "Server=127.0.0.1;Port=3306;User Id=xxx;Password=xxx;Database=xxx"
}
Program.cs文件中添加如下內(nèi)容。其中"MySqlDataBase"為appsettings.json中定義的名字。MynetContext為你數(shù)據(jù)上下文類名。
builder.Services.AddDbContext<MynetContext>(
options =>
{
options.UseMySql(builder.Configuration.GetConnectionString("MySqlDataBase"), new MySqlServerVersion(new Version(8, 0, 31)));
});
SQL server
appsettings.json中添加下面內(nèi)容,其中"MVCSqlContext"可以自己定義,見名識意就好哦。后面的內(nèi)容根據(jù)自己的實際情況修改就好。
"ConnectionStrings": {
"MVCSqlContext": "Server=localhost;Database=InfoUser;User ID=sa;Password=sa;"
}
Program.cs文件中添加如下內(nèi)容。其中"MVCSqlContext"為appsettings.json中定義的名字。MynetContext為你數(shù)據(jù)上下文類名。
builder.Services.AddDbContext<MynetContext>(
options =>
{
options.UseSqlServer(builder.Configuration.GetConnectionString("MVCSqlContext"));
});
SQLite
appsettings.json中添加下面內(nèi)容,其中"DefaultConnection"可以自己定義,見名識意就好哦。后面的內(nèi)容根據(jù)自己的實際情況修改就好。
"ConnectionStrings": {
"DefaultConnection": "DataSource=app.db;Cache=Shared"
}
Program.cs文件中添加如下內(nèi)容。其中"DefaultConnection"為appsettings.json中定義的名字。MynetContext為你數(shù)據(jù)上下文類名。
builder.Services.AddDbContext<MynetContext>(
options =>
{
options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"));
});
補充:為防止有人不知道在Startup文件怎么寫,這里給一個示例:文章來源:http://www.zghlxwxcb.cn/news/detail-445409.html
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddDbContext<PrizeContext>(options => options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
}
注:下一篇將創(chuàng)建實體類,通過EFCore方式自動生成數(shù)據(jù)庫。文章來源地址http://www.zghlxwxcb.cn/news/detail-445409.html
到了這里,關于.NET6項目連接數(shù)據(jù)庫方式方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!