(为什么这么写,我记不太清了。大致步骤相同,不过我推荐的这个比我写的好。愿:在程序的路上多多学习,共同进步!奥利给!!!)
一、在Models 新建两个数据库类
这个是数据库需要生成的类基础
public classUser
{
[Key]public string ID { get; set; }
[MaxLength(50)]public string Name { get; set; }public int Age { get; set; }
[MaxLength(50)]public string Phone { get; set; }public string DepartmentID { get; set; }
[ForeignKey("DepartmentID")]public Department Department { get; set; }
}public classDepartment
{
[Key]public string ID { get; set; }
[MaxLength(50)]public string Name { get; set; }
}
二、新建文件夹MysqlDbContext,然后新建类MysqlContext (注意文件夹的名字,不要跟类名一样)
然后建立表与数据库关系映射
public classMysqlContext : DbContext
{public MysqlContext(DbContextOptions options) : base(options)
{
}//建立表与模型的映射关系
public DbSet User { get; set; }public DbSet Department { get; set; }protected override voidOnModelCreating(ModelBuilder modelBuilder)
{base.OnModelCreating(modelBuilder);
}
}
三、添加依赖项
依赖项右键 》》管理NuGet 包》》浏览
搜索这两个,注意安装的 版本号 ,是core 2.x的 你安装 3.x 会报错
我安装的是2.2.6
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql
不要在乎那个安装的颜色,第一个安装之前是浅蓝,安装之后就紫色了。
四、添加 Util 文件夹 ,添加AppConfigurtaionServices类
这个是创建生成的数据库文件的类
public classAppConfigurtaionServices
{public static IConfiguration Configuration { get; set; }staticAppConfigurtaionServices()
{//ReloadOnChange = true 当appsettings.json被修改时重新加载
Configuration = newConfigurationBuilder()
.Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true})
.Build();
}
}
还有这种写法(我不是太懂这两个有什么区别,知道的大哥可以给我留言,万分感谢)
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory{public MysqlDbContext CreateDbContext(string[] args)
{var configBuilder = newConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();var builder = new DbContextOptionsBuilder();
builder.UseMySql(configBuilder.GetConnectionString("DefaultConnection"));return newMysqlDbContext(builder.Options);
}
}
这种写法需要引用(注意版本)
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration
Pomelo.EntityFrameworkCore.MySql
五、在Startup 的ConfigureServices下添加
services.AddDbContext(options =>options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));
六、在appsettings.json 添加数据库连接
"ConnectionStrings": {"DefaultConnection": "Data Source =数据库服务器地址(127.127.127.127);port=3306;Initial Catalog=数据库名;user id=数据库连接名;password=密码;Character Set=utf8;sslmode=none"},
七、最后一步
执行命令找到程序应用控制台
先输入 Add-Migration init 回车
然后 Update-Database init 回车
最后在数据看一下
最后在补充一下,如果要添加或者修改数据库直接修改Models的类,然后执行Update-Database V1.1(这个v1.1是版本号),就可以了,不要直接改数据库。
多说一句,如果是新建的类库里面放的话,默认执行的是启动项,也就是你的web项目,要把默认的改成你的类库
结束。
目录如下: