.NetCore使用CodeFirst鏈接MySql數據庫

1、準備工具
 
2、建立項目
 
前言:Hello,小夥伴們。今天要帶來的是C# 中使用 codefirst 鏈接mysql數據庫。其實早就想嘗試一下mysql告終果一直比較懶直到昨天開始學,前段時間.Net5正式版出來了,同時新舊交替的時候也會帶來一些新的坑,踩完後準備出來和你們一下交流一下,你們看到有什麼不對的地方也能夠指出來。
 
源碼地址:https://gitee.com/txw2419078199/netcore_-mvc_-shop-system.git 
 
 
1、準備工具
1.其實工具的話基本沒什麼要求,只要vs2019和一個mysql數據庫就能夠了。
2.這裏是個人配置
MySQL  8.0.19
Navicat  
Visual Studio 2019 Preview
 
2、建立項目
 
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還不支持.NET 5,不過我看了他在Github上的官方V5.0正式版不久也要到了。
 

 

(2)在ShopSystem導入如下包:mysql

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; }
    }
}

 項目結構:git

 

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注入數據庫服務sql

(1)首先要添加model層的引用數據庫

(2)而後在ConfigureServices加入mvc

services.AddDbContext<ShopDbContext>(p => p.UseMySql(Configuration.GetConnectionString("ShopDB")));ide

 

5.開始遷移工具

依次點擊    工具=》NuGet包管理器=》程序包管理器控制檯,設置ShopSystem.Model爲默認項目,ShopSystem爲啓動項目。ui

 

(1)查看遷移 Enable-Migrationsspa

這裏顯示能夠添加遷移
 
(2)添加遷移 Add-Migration "名字"

 

 這個時候能夠看到已經添加好了,同時多了一個遷移記錄的文件夾.net

而後咱們查看一下數據庫,看到是沒有ShopDB的,由於這個時候尚未把改動更新到數據庫

 

(3)更新數據庫 Update-Database

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

相關文章
相關標籤/搜索