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 DbSet<PosParameter> Parameter { get; set; }
    public SmartPosContext()
    {
        //Database.MigrateAsync();
    }

    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
执行之后,会自动将本次的修改迁移到数据库
中间可能会遇到一些小问题,但都是可以根据提示解决的。

posted @ 2021-08-09 09:47  大苹果coding  阅读(715)  评论(0编辑  收藏  举报