You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中连接SQLite数据库时遇DbContext未找到及EF版本冲突问题

解决EF Core连接SQLite迁移错误的方案

1. 修正DbContext的访问修饰符

你的ApplicationContext是internal类,EF Core迁移工具需要从外部程序集访问该类,必须将其改为public:

public class ApplicationContext : DbContext
{
    // ... 你的配置和DbSet定义
}

2. 明确指定EF Core工具执行命令

由于同时安装了EF6和EF Core,执行迁移命令时要明确指定使用EF Core工具,避免命令冲突:

PM> EntityFrameworkCore\Add-Migration first

3. 确保DbContext配置正确

检查ApplicationContext的SQLite连接配置是否完整:

方式一:在OnConfiguring中直接配置

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {
        optionsBuilder.UseSqlite("Data Source=your_database_name.db");
    }
}

方式二:依赖注入配置(.NET 6+)

在Program.cs中注册DbContext:

builder.Services.AddDbContext<ApplicationContext>(options =>
    options.UseSqlite(builder.Configuration.GetConnectionString("SqliteConnection")));

同时在appsettings.json中添加连接字符串:

{
  "ConnectionStrings": {
    "SqliteConnection": "Data Source=your_database_name.db"
  }
}

4. 检查必备包是否安装

确保已安装以下EF Core相关包:

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Tools(迁移工具核心依赖)

5. 指定目标程序集(多项目场景)

如果DbContext不在启动项目中,执行命令时需指定项目参数:

PM> EntityFrameworkCore\Add-Migration first -Project 你的数据层项目名 -StartupProject 你的启动项目名

内容的提问来源于stack exchange,提问作者OUTWEST

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:02:12