国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移

這篇具有很好參考價(jià)值的文章主要介紹了.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

接上期文章《.NET6項(xiàng)目連接數(shù)據(jù)庫(kù)方式方法》,有人問(wèn)了我?guī)讉€(gè)問(wèn)題,現(xiàn)在就這幾個(gè)問(wèn)題,拓展延申一下創(chuàng)建實(shí)體類、數(shù)據(jù)庫(kù)。把ORM框架和數(shù)據(jù)遷移都寫進(jìn)去。
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移

安裝ORM框架,這里我們采用EFCore

安裝EFCore

我的項(xiàng)目是在Linux上創(chuàng)建的,使用的是vscode開(kāi)發(fā)工具遠(yuǎn)程開(kāi)發(fā)。為了方便大家閱讀和操作,我將項(xiàng)目down到我的本地電腦(Windows10系統(tǒng)),使用專業(yè)的.NET開(kāi)發(fā)工具Visual Studio開(kāi)發(fā)。
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移

創(chuàng)建實(shí)體類

.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
添加完以后的解決方案是這樣的
User.cs類的內(nèi)容如下:

using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace test.Models
{
    public class User
    {
        [Key]   //數(shù)據(jù)庫(kù)主鍵
        public int UserId { get; set; }
        [Column(TypeName = "nvarchar(100)")]
        public string UserName { get; set; }
        [Column(TypeName = "nvarchar(100)")]
        public string UserPwd { get; set; }
        public int UserAge { get; set; }
        [Column(TypeName = "nvarchar(200)")]
        public string? UserAddress { get; set; }

    }
}

創(chuàng)建數(shù)據(jù)上下文類

添加數(shù)據(jù)上下文文件夾MyDataBaseContext,添加以后解決方案結(jié)構(gòu)如下

.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移

創(chuàng)建操作主庫(kù)的數(shù)據(jù)上下文MyDataBaseContext_main.cs并繼承數(shù)據(jù)上下文DbContext

操作主庫(kù)的動(dòng)作有添加、修改、刪除,如圖所示:
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移

代碼如下:

using Microsoft.EntityFrameworkCore;
using test.Models;

namespace test.MyDataBaseContext
{
    public class MyDataBaseContext_mian : DbContext
    {
        //添加User類
        public DbSet<User> Users { get; set; }
        //構(gòu)造函數(shù)
        public MyDataBaseContext_mian(DbContextOptions<MyDataBaseContext_mian> option) : base(option)
        {

        }
    }
}

創(chuàng)建操作從庫(kù)的數(shù)據(jù)上下文MyDataBaseContext_from.cs并繼承數(shù)據(jù)上下文DbContext

操作主庫(kù)的動(dòng)作只有查詢,如圖所示:
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
代碼如下:

using Microsoft.EntityFrameworkCore;
using test.Models;

namespace test.MyDataBaseContext
{
    public class MyDataBaseContext_from : DbContext
    {
        //添加User類
        public DbSet<User> Users { get; set; }
        //構(gòu)造函數(shù)
        public MyDataBaseContext_from(DbContextOptions<MyDataBaseContext_from> option) : base(option)
        {

        }
    }
}

添加連接字符串配置

按照上一篇文章《.NET6項(xiàng)目連接數(shù)據(jù)庫(kù)方式方法》的方式方法首先在appsettings文件中添加連接數(shù)據(jù)庫(kù)字符串二,便于大家區(qū)分,寫成這樣:
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移

"ConnectionStrings": {
    "MySqlDataBase": "Server=192.168.11.82;Port=3306;User Id=ymliu;Password=ymliu2023;Database=BlogDataBase",
    "MySqlDataBase2": "Server=192.168.11.82;Port=3306;User Id=ymliu;Password=ymliu2023;Database=BlogDataBase2"
  }

其次在Program.cs文件中注冊(cè)服務(wù),需要注意的是,我們需要注冊(cè)兩個(gè)數(shù)據(jù)上下文。才能實(shí)現(xiàn)讀寫分離,如圖所示:
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
代碼如下:

//注冊(cè)操作主庫(kù)的數(shù)據(jù)上下文
builder.Services.AddDbContext<MyDataBaseContext_mian>(
    options =>
    {
        options.UseMySql(builder.Configuration.GetConnectionString("MySqlDataBase"), new MySqlServerVersion(new Version(8, 0, 31)));
    });
//注冊(cè)操作從庫(kù)的數(shù)據(jù)上下文
builder.Services.AddDbContext<MyDataBaseContext_from>(
    options =>
    {
        options.UseMySql(builder.Configuration.GetConnectionString("MySqlDataBase2"), new MySqlServerVersion(new Version(8, 0, 31)));
    });

開(kāi)始遷移

在NuGet程序包上搜索安裝下面這兩個(gè)包,Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
開(kāi)始遷移,點(diǎn)擊工具,NuGet包管理器,程序包管理器控制臺(tái),打開(kāi)控制臺(tái)。因?yàn)槲覀冇袃蓚€(gè)DbConext,直接使用Add-Migration命令會(huì)報(bào)如下錯(cuò)誤。
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
因此我們需要分開(kāi)操作,操作方式如下:
首先操作主庫(kù)的上下文:

# 數(shù)據(jù)遷移
add-migration testDataBaseMigraMain -c MyDataBaseContext_mian -o test/DataMigra/main
# 更新到數(shù)據(jù)庫(kù)
Update-Database -Context MyDataBaseContext_mian

其次操作從庫(kù)的上下文:

# 數(shù)據(jù)遷移
add-migration testDataBaseMigraFrom -c MyDataBaseContext_from -o test/DataMigra/from
# 更新到數(shù)據(jù)庫(kù)
Update-Database -Context MyDataBaseContext_from

注解: -c/-Context :哪個(gè)DbConext ;-o :這個(gè)DbConext對(duì)應(yīng)生成 的Migrations文件對(duì)應(yīng)的目錄
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移
可以看到MySQL中已經(jīng)生成兩個(gè)數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)中的表都是一樣的。

配置數(shù)據(jù)庫(kù)主從同步

數(shù)據(jù)庫(kù)主從同步,這里不再演示,不會(huì)的小伙伴可以去看我的另外一篇文章《基于Canal實(shí)現(xiàn)MySQL 8.0 數(shù)據(jù)庫(kù)數(shù)據(jù)同步》。鏈接地址

下期預(yù)告:
.net 6框架下的EF Core操作數(shù)據(jù)庫(kù)基本增刪改查文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-449135.html

到了這里,關(guān)于.NET6 + EF Core + MySQL 創(chuàng)建實(shí)體和數(shù)據(jù)庫(kù)、EFCore 數(shù)據(jù)遷移的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • .NET Core/.NET6 使用DbContext 連接數(shù)據(jù)庫(kù),SqlServer

    .NET Core/.NET6 使用DbContext 連接數(shù)據(jù)庫(kù),SqlServer

    安裝以下NuGet包 Microsoft.EntityFrameworkCore.SqlServer:SQL server 需要添加包 Microsoft.EntityFrameworkCore.Tools Newtonsoft.Json:用于Json格式轉(zhuǎn)換 創(chuàng)建一個(gè)實(shí)體類來(lái)表示數(shù)據(jù)庫(kù)表。在項(xiàng)目中創(chuàng)建一個(gè)名為Customer.cs的文件,并添加以下代碼 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)上下文類,用于定義實(shí)體類和數(shù)據(jù)庫(kù)連接

    2024年02月07日
    瀏覽(27)
  • .net core .net6 讀取數(shù)據(jù)庫(kù) 讀取配置文件 保姆級(jí)教程

    .net core .net6 讀取數(shù)據(jù)庫(kù) 讀取配置文件 保姆級(jí)教程

    本文環(huán)境 Microsoft Visual Studio 2022 .Net6 SQLServer2019 在解決方案管理器右鍵添加相關(guān)的包,如下兩個(gè)包 Microsoft.Data.SqlClient SQLServer SQLServer數(shù)據(jù)庫(kù) Microsoft.Extensions.Configuration.Json json配置文件 添加配置文件 appsettings.json,選始終復(fù)制 添加json配置文件內(nèi)容如下 DefaultConnection 根據(jù)自己的

    2024年02月08日
    瀏覽(25)
  • .NET6.0 EF Core連接sql

    1、先導(dǎo)入四個(gè)包 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Relational Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools 2、在程序包管理控制臺(tái)執(zhí)行 Scaffold-DbContext \\\"server=.;Integrated Security=true;database=DBStu\\\" Microsoft.EntityFrameworkCore.SqlServer -OutPutDir Models Models是你實(shí)體類安放

    2024年02月06日
    瀏覽(26)
  • .net 連接MySql數(shù)據(jù)庫(kù) + 使用Microsoft.EntityFrameworkCore.Design自動(dòng)生成實(shí)體類 + 使用EFCore操作數(shù)據(jù)庫(kù)

    .net 連接MySql數(shù)據(jù)庫(kù) + 使用Microsoft.EntityFrameworkCore.Design自動(dòng)生成實(shí)體類 + 使用EFCore操作數(shù)據(jù)庫(kù)

    先準(zhǔn)備好一個(gè)mysql數(shù)據(jù)庫(kù)(我這里準(zhǔn)備的是test數(shù)據(jù)庫(kù),里面又準(zhǔn)備了兩張表,其中book表中只有兩個(gè)字段,Id(bigint類型)和 Name(varchar類型)) 使用VS新建一個(gè)asp.net core web api項(xiàng)目(我這里使用的框架是.net5.0的,確保版本對(duì)應(yīng)很重要) 打開(kāi)終端 進(jìn)到項(xiàng)目所在目錄(我這里解

    2024年02月07日
    瀏覽(32)
  • 遷移更新EF Core 中的sqlserver 數(shù)據(jù)庫(kù)提示0x80131904

    遷移更新EF Core 中的sqlserver 數(shù)據(jù)庫(kù)提示0x80131904

    Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 證書鏈?zhǔn)怯刹皇苄湃蔚念C發(fā)機(jī)構(gòu)頒發(fā)的。) ?--- System.ComponentModel.Win32Exception (0x80090325): 證書鏈?zhǔn)怯刹皇苄湃蔚念C發(fā)機(jī)構(gòu)頒發(fā)的

    2024年02月16日
    瀏覽(20)
  • 使用asp.net core web api創(chuàng)建web后臺(tái),并連接和使用Sql Server數(shù)據(jù)庫(kù)

    使用asp.net core web api創(chuàng)建web后臺(tái),并連接和使用Sql Server數(shù)據(jù)庫(kù)

    前言:因?yàn)橐獙懸粋€(gè)安卓端app,實(shí)現(xiàn)從服務(wù)器中獲取電影數(shù)據(jù),所以需要搭建服務(wù)端代碼,之前學(xué)過(guò)C#,所以想用C#實(shí)現(xiàn)服務(wù)器段代碼用于測(cè)試,本文使用C#語(yǔ)言,使用asp.net core web api組件搭建服務(wù)器端,并訪問(wèn)sql server 數(shù)據(jù)庫(kù)。 一、安裝Visual studio 2022 社區(qū)版,并安裝ASP.NET和

    2024年02月14日
    瀏覽(28)
  • .NET6項(xiàng)目連接數(shù)據(jù)庫(kù)方式方法

    .NET6項(xiàng)目連接數(shù)據(jù)庫(kù)方式方法

    接上一篇Linux系統(tǒng)下創(chuàng)建dotnet項(xiàng)目,這一篇我們聊聊.NET6環(huán)境下dotnet項(xiàng)目連接數(shù)據(jù)庫(kù)的方式方法,包括數(shù)據(jù)庫(kù)字符串該如何配置??戳撕芏嗖┲鲗懙奈恼?,連接數(shù)據(jù)庫(kù)字符串配置的方式和位置五花八門,這篇文章給大家介紹一下連接數(shù)據(jù)庫(kù)字符串的配置方式方法,順便介紹下一

    2024年02月04日
    瀏覽(22)
  • .NET6使用SqlSugar操作數(shù)據(jù)庫(kù)

    .NET6使用SqlSugar操作數(shù)據(jù)庫(kù)

    1.//首先引入SqlSugarCore包 2.//新建SqlsugarSetup類 3.//在appsettings添加連接字符串 4.//在Program注入SqlsugarSetup類 5.//在方法中依賴注入 6.使用SqlSugar增刪改查

    2024年02月13日
    瀏覽(32)
  • .NET6入門:2.使用模板創(chuàng)建.NET Core Web

    .NET6入門:2.使用模板創(chuàng)建.NET Core Web

    ? ? ? ? ? ? ? ? 在目前B/S盛行的時(shí)代,本文將通過(guò)創(chuàng)建一個(gè).NET Core Web模板的方式來(lái)帶領(lǐng)大家進(jìn)入.NET6開(kāi)發(fā)的大門。 ? ? ? ? 1.1 打開(kāi)Visual Studio(不同版本VS可能創(chuàng)建新項(xiàng)目所在位置不同),單擊創(chuàng)建新項(xiàng)目。 ? ? ? ? 1.2 選擇C#語(yǔ)言和Web平臺(tái),在下面的項(xiàng)目中選中ASP.NET Core Web應(yīng)

    2024年02月12日
    瀏覽(23)
  • ASP.Net Core Web API結(jié)合Entity Framework Core框架(API的創(chuàng)建使用,接口前端權(quán)限設(shè)置,前端獲取API的Get,post方法)(程序包引用以及導(dǎo)入數(shù)據(jù)庫(kù))

    ASP.Net Core Web API結(jié)合Entity Framework Core框架(API的創(chuàng)建使用,接口前端權(quán)限設(shè)置,前端獲取API的Get,post方法)(程序包引用以及導(dǎo)入數(shù)據(jù)庫(kù))

    目錄 1. Web Api 程序包引用 2. Web Api 的創(chuàng)建與Http類型的介紹 2.1?ASP.Net Core Web API項(xiàng)目的創(chuàng)建 2?.2? API接口的創(chuàng)建 2.3?HttpGet和HttpPost類型的區(qū)別 3.接口權(quán)限設(shè)置 4.HttpGet方法和HttpPOst方法 5.前端中用HttpGet/Poset獲取接口數(shù)據(jù) 6.EF框架——配置數(shù)據(jù)庫(kù)鏈接字符串(即將數(shù)據(jù)庫(kù)中的表導(dǎo)入項(xiàng)

    2024年02月08日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包