1. 程式人生 > 其它 >Sqlite使用EFCore Code First記錄說明

Sqlite使用EFCore Code First記錄說明

** 應用程式為.Net 5.0 資料庫類庫為.Net Standard 2.1 **

# 包安裝

1.Microsoft.Data.Sqlite

2.Microsoft.EntityFrameworkCore.Sqlite

3.Microsoft.EntityFrameworkCore.Tools

其中第二個是EFCore提供對Sqlite的支援,第三個是遷移時需要用到

# DbContext的配置

public class SmartPosContext : DbContext
    {
        public SmartPosContext()
        {
            
//Database.MigrateAsync(); }

     public DbSet<PosParameter> Parameter { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) { //應用對映 //modelBuilder.ApplyConfiguration(new PosParameterMap()); base.OnModelCreating(modelBuilder); }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "/Database/database.db"); base.OnConfiguring(optionsBuilder); } }

其中應用Sqlite的是重寫方法OnConfiguring中的optionsBuilder.UseSqlite()方法,構造中是我測試的自動遷移,OnModelCreating方法中,可以自定義配置對映

** 注意的是,我這裡使用了自定義對映配置,也可以不用**

# 資料遷移(CodeFirst的靈魂)

編寫好自己的實體類,例如:

public class PosParameter : Base
    {
        /// <summary>
        /// 引數名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 引數值
        /// </summary>
        public string Value { get; set; }
    }

+ 開啟程式包管理器控制檯

+ 並將預設專案選擇為該類庫(這步是必須的)

+ 執行資料庫遷移

>add-migration init

執行之後,會自動生成遷移檔案

>update-database

執行之後,會自動將本次的修改遷移到資料庫

中間可能會遇到一些小問題,但都是可以根據提示解決的。