创建两个项目
1.网站
2.Model层
引用DLL
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql
修改两个项目中的的tools
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.2" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.1.1" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
创建DataContext
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
namespace MysqlCoreTest
{
//using Microsoft.EntityFrameworkCore;
public class DataContext : DbContext
{
public DbSet<User> Users { get; set; }
//public DataContext(DbContextOptions<DataContext> options) : base(options)
//{
//}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql(
"Data Source=localhost;Database=Test;User ID=root;Password=12qwaszx;pooling=true;CharSet=utf8;port=3306;sslmode=none");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>().HasIndex(u => u.Id).IsUnique();
}
}
}
依次点开:工具》打开Nuget包管理器》程序包管理控制台。
首先输入Add-Migration MyFirstMigration执行;
接着输入Update-Database执行。出现Done表示成功创建数据库。
EFCodeFirst 各种命令整理
1.Enable-Migrations (创建迁移目录:Migrations,如果有多个数据上下文可以用 -ContextTypeName 命令迁移对应的数据上下文 )
2.Add-Migration (创建一个迁移文件)
3.update-database(启动迁移,生成数据库)
4.install-package entityframework(初始化配置包)
5. Update-Database -Script -SourceMigration:" " -TargetMigration:" " (生成数据库版本之间的Sql脚本,正式区换版时有用)
6.Update-Database –TargetMigration:" " (进行数据库版本回溯)
7.Update-Database –TargetMigration: $InitialDatabase -Script (回到初始状态)
遇到的坑
Unable to connect to any of the specified MySQL hosts. 或者是 MySql.Data.MySqlClient.MySqlException:"Unable to connect to any of the spec
这里一定是要把ip地址写成 localhost 不能用. 原因不明确