Visual Studio 2019 Preview
二、创建项目
1.创建一个MVC项目,和一个类库
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yMzEDOwY2MyIWOmNTO2IWZyYTNxADOkVDO4Y2YmNjMw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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 options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
}
public DbSet 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(p => p.UseMySql(Configuration.GetConnectionString("ShopDB")));
5.开始迁移
依次点击 工具=》NuGet包管理器=》程序包管理器控制台,设置ShopSystem.Model为默认项目,ShopSystem为启动项目。
(1)查看迁移 Enable-Migrations
这里显示可以添加迁移
(2)添加迁移 Add-Migration "名字"
这个时候可以看到已经添加好了,同时多了一个迁移记录的文件夹
然后我们查看一下数据库,看到是没有ShopDB的,因为这个时候还没有把改动更新到数据库
(3)更新数据库 Update-Database
这个时候再回去看一下数据库已经更新成功