暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

.NetCore使用CodeFirst连接MySql数据库

DotNet开发跳槽 2020-11-20
1337

一、准备工具

 

二、创建项目

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

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

 出处:

https://www.cnblogs.com/tangxiaowen/archive/2020/11/20/14007170.html

微信搜索“DotNet开发跳槽”或扫描文章底部二维码关注公众:回复“.NET5牛”领取海量学习资料。


版权申明:本文来源于网友收集或网友提供,如果有侵权,请转告版主或者留言,本公众号立即删除。


文章转载自DotNet开发跳槽,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论