C# 之 .net core -- EF code first連接Mysql數據庫


 

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

 結束。

 

目錄如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM