一、引用对应的包
EntityFramework
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Tools
二、创建一个对应的类
创建ApplicationDbContext,实现接口DbContext,并实现里面的方法
public class ApplicationDbContext:DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
}
三、注册对应的模型和创建数据库文件
public class ApplicationDbContext:DbContext
{
public DbSet<User> userModels { set; get; }
public DbSet<Endpoint> Endpoint { set; get; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
// 创建子目录路径
string databaseDir = Path.Combine(baseDir, "AppData");
// 如果目录不存在,则创建它
if (!Directory.Exists(databaseDir))
{
Directory.CreateDirectory(databaseDir);
}
// 组合数据库文件的完整路径
string dbPath = Path.Combine(databaseDir, "AppDatas2.db");
string path = $"Data Source={dbPath}";
optionsBuilder.UseSqlite(path);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasKey(e=>e.Id);
modelBuilder.Entity<Endpoint>().HasKey(e => e.ID);
base.OnModelCreating(modelBuilder);
}
}
如果又增加了几个模型,那么就要删除创建出来的数据库文件或者更改路径
在对应的初始化类里添加这个方法并调用,防止数据库文件没有被调用
private static void EnsureDatabaseCreated()
{
using (var db = new ApplicationDbContext())
{
// 确保数据库已经被创建
db.Database.EnsureCreated();
}
}