2020年11月20日星期五

.NetCore使用CodeFirst连接MySql数据库

一、准备工具
 
二、创建项目

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还不支持.NET 5,不过我看了他在Github上的官方V5.0正式版不久也要到了。
 

 

(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

这里显示可以添加迁移
 
(2)添加迁移 Add-Migration "名字"

 

 这个时候可以看到已经添加好了,同时多了一个迁移记录的文件夹

然后我们查看一下数据库,看到是没有ShopDB的,因为这个时候还没有把改动更新到数据库

 

(3)更新数据库 Update-Database

 这个时候再回去看一下数据库已经更新成功

 

 

 

 

 


 











原文转载:http://www.shaoqun.com/a/491729.html

ola:https://www.ikjzd.com/w/2103

Sunrate:https://www.ikjzd.com/w/2685

网上1号店:https://www.ikjzd.com/w/2263


一、准备工具二、创建项目1.创建项目和类库2.安装NuGet包3.创建实体类和数据库操作上下文4.配置连接字符串5.开始迁移前言:Hello,小伙伴们。今天要带来的是C#中使用codefirst连接mysql数据库。其实早就想尝试一下mysql了结果一直比较懒直到昨天开始学,前段时间.Net5正式版出来了,同时新旧交替的时候也会带来一些新的坑,踩完后准备出来和大家一下交流一下,大家看到有什么不对的
斑马物流:斑马物流
五洲会海购:五洲会海购
从少林寺的旅游轶事说到"生态旅游":从少林寺的旅游轶事说到"生态旅游"
肇庆星湖湿地公园简介?肇庆七星岩湿地公园介绍?:肇庆星湖湿地公园简介?肇庆七星岩湿地公园介绍?
2018卖家日历:2018卖家日历

没有评论:

发表评论

注意:只有此博客的成员才能发布评论。