Sqlite使用EFCore Code First記錄說明
阿新 • • 發佈:2021-08-09
** 應用程式為.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
執行之後,會自動將本次的修改遷移到資料庫
中間可能會遇到一些小問題,但都是可以根據提示解決的。