天天看点

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

Visual Studio 2019 Preview

二、创建项目

1.创建一个MVC项目,和一个类库

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

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正式版不久也要到了。

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

(2)在ShopSystem导入以下包:

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.Tools

Microsoft.VisualStudio.Web.CodeGeneration.Design

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

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

}

}

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

数据库操作上下文:ShopContext:

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

using Microsoft.EntityFrameworkCore;

namespace ShopSystem.Model.Context

{

public class ShopDbContext: DbContext

{

public ShopDbContext(DbContextOptions options) : base(options)

{

}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

{

base.OnConfiguring(optionsBuilder);

}

public DbSet Commodity { get; set; }

}

}

项目结构:

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

4.配置连接字符串

(1)在ShopSystem下的Appsetting配置连接字符串

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

"ConnectionStrings": {

"ShopDB": "Server=localhost;DataBase=ShopDB;uid=root;pwd=Tang380821;pooling=true;port=3306;CharSet=utf8;sslMode=None;"

}

第三个坑:注意:sslMode=None必须要加不然会到后面生成数据库的时候会报错。

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

5.在ShopSystem下Startup.cs中的ConfigureServices注入数据库服务

(1)首先要添加model层的引用

(2)然后在ConfigureServices加入

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

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

5.开始迁移

依次点击    工具=》NuGet包管理器=》程序包管理器控制台,设置ShopSystem.Model为默认项目,ShopSystem为启动项目。

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

(1)查看迁移 Enable-Migrations

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

这里显示可以添加迁移

(2)添加迁移 Add-Migration "名字"

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

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

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

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

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

(3)更新数据库 Update-Database

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库

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

codefirst连接mysql_.NetCore使用CodeFirst连接MySql数据库