一、準備工具 二、創建專案 1.創建專案和類別庫 2.安裝NuGet包 3.創建物體類和資料庫操作背景關系 4.配置連接字串 5.開始遷移 前言:Hello,小伙伴們,今天要帶來的是C# 中使用 codefirst 連接mysql資料庫,其實早就想嘗試一下mysql了結果一直比較懶直到昨天開始學,前段時間.Net5正式版出來了,同時新舊交替的時候也會帶來一些新的坑,踩完后準備出來和大家一下交流一下,大家看到有什么不對的地方也可以指出來, 原始碼地址:https://gitee.com/txw2419078199/netcore_-mvc_-shop-system.git 一、準備工具 1.其實工具的話基本沒什么要求,只要vs2019和一個mysql資料庫就可以了, 2.這里是我的配置 MySQL 8.0.19 Navicat Visual Studio 2019 Preview 二、創建專案 1.創建一個MVC專案,和一個類別庫
2..安裝NuGet包
(1)在ShopSystem.Model按匯入以下包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Relational
Pomelo.EntityFrameworkCore.MySql
第一個坑:有的地方是推薦安裝MySql.Data.EntityFrameworkCore,但是我用后在生成資料庫時報錯了,一查好像是到現在為止他還沒有完成對.net core 3.1支持,所以我們安裝Pomelo.EntityFrameworkCore.MySql,
第二個坑:就是Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.Relational不要安裝5.0及以上版本,不然后面也會報錯,因為pomelo還不支持所以不能不兼容,

(2)在ShopSystem匯入以下包:
Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Tools Microsoft.VisualStudio.Web.CodeGeneration.Design
3.在ShopSystem.Model下創建物體類和資料庫操作背景關系
商品類Commodity:
using System;
namespace ShopSystem.Model {
public class Commodity
{
public int Id { get; set; } public string Name { get; set; } public float Price { get; set; }
}
}
資料庫操作背景關系:ShopContext:
using Microsoft.EntityFrameworkCore; namespace ShopSystem.Model.Context
{
public class ShopDbContext: DbContext
{
public ShopDbContext(DbContextOptions<ShopDbContext> options) : base(options)
{ } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
} public DbSet<Commodity> Commodity { get; set; }
}
}
專案結構:

4.配置連接字串 (1)在ShopSystem下的Appsetting配置連接字串
"ConnectionStrings": {"ShopDB": "Server=localhost;DataBase=ShopDB;uid=root;pwd=Tang380821;pooling=true;port=3306;CharSet=utf8;sslMode=None;"
} 第三個坑:注意:sslMode=None必須要加不然會到后面生成資料庫的時候會報錯,
5.在ShopSystem下Startup.cs中的ConfigureServices注入資料庫服務
(1)首先要添加model層的參考
(2)然后在ConfigureServices加入
services.AddDbContext<ShopDbContext>(p => p.UseMySql(Configuration.GetConnectionString("ShopDB")));

5.開始遷移
依次點擊 工具=》NuGet包管理器=》程式包管理器控制臺,設定ShopSystem.Model為默認專案,ShopSystem為啟動專案,

(1)查看遷移 Enable-Migrations


這個時候可以看到已經添加好了,同時多了一個遷移記錄的檔案夾

然后我們查看一下資料庫,看到是沒有ShopDB的,因為這個時候還沒有把改動更新到資料庫

(3)更新資料庫 Update-Database

這個時候再回去看一下資料庫已經更新成功

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/225456.html
標籤:.NET技术
