回過頭來看看,我之前寫的有些復雜。推薦大家看下這個 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項目,要把默認的改成你的類庫
結束。
目錄如下: