回过头来看看,我之前写的有些复杂。推荐大家看下这个 https://www.cnblogs.com/lyps/archive/2018/11/06/9916167.html 博客。
(为什么这么写,我记不太清了。大致步骤相同,不过我推荐的这个比我写的好。愿:在程序的路上多多学习,共同进步!奥利给!!!)
一、在Models 新建两个数据库类
这个是数据库需要生成的类基础
public class User { [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 class Department { [Key] public string ID { get; set; } [MaxLength(50)] public string Name { get; set; } }
二、新建文件夹MysqlDbContext,然后新建类MysqlContext (注意文件夹的名字,不要跟类名一样)
然后建立表与数据库关系映射
public class MysqlContext : DbContext { public MysqlContext(DbContextOptions<MysqlContext> options) : base(options) { } //建立表与模型的映射关系 public DbSet<User> User { get; set; } public DbSet<Department> Department { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); } }
三、添加依赖项
依赖项右键 》》管理NuGet 包》》浏览
搜索这两个,注意安装的 版本号 ,是core 2.x的 你安装 3.x 会报错
我安装的是2.2.6
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql
不要在乎那个安装的颜色,第一个安装之前是浅蓝,安装之后就紫色了。
四、添加 Util 文件夹 ,添加AppConfigurtaionServices类
这个是创建生成的数据库文件的类
public class AppConfigurtaionServices { public static IConfiguration Configuration { get; set; } static AppConfigurtaionServices() { //ReloadOnChange = true 当appsettings.json被修改时重新加载 Configuration = new ConfigurationBuilder() .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true }) .Build(); } }
还有这种写法(我不是太懂这两个有什么区别,知道的大哥可以给我留言,万分感谢)
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<MysqlDbContext> { public MysqlDbContext CreateDbContext(string[] args) { var configBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); var builder = new DbContextOptionsBuilder<MysqlDbContext>(); builder.UseMySql(configBuilder.GetConnectionString("DefaultConnection")); return new MysqlDbContext(builder.Options); } }
这种写法需要引用(注意版本)
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration
Pomelo.EntityFrameworkCore.MySql
五、在Startup 的ConfigureServices下添加
services.AddDbContext<MysqlContext>(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项目,要把默认的改成你的类库
结束。
目录如下: