.net core mysql CodeFirst
创建两个项目
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 不能用. 原因不明确