ASP.NET Core+EF Core+SQLite初始迁移失败问题求助
解决ASP.NET Core Code First SQLite初始迁移失败问题
嘿,我一眼就瞅出问题根源了——你的DataContext构造函数参数类型写错啦!
你当前构造函数里用的是DbContextOptions<DbContext>,但EF Core需要的是对应你自定义DbContext的泛型参数,也就是DbContextOptions<DataContext>。这是因为DI容器要精准匹配你注册的服务类型:你在Startup里注册的是AddDbContext<DataContext>,但构造函数却要求基类DbContext的选项,容器找不到对应的服务,自然就抛出了无法解析的错误。
修正后的DataContext代码:
public class DataContext : DbContext { // 把泛型参数从DbContext改成DataContext public DataContext(DbContextOptions<DataContext> options) : base(options) {} public DbSet<Value> Values { get; set; } }
补充说明
当你执行dotnet ef migrations add InitialCreate时,EF的设计时工具会尝试实例化你的DataContext来生成迁移文件。它依赖DI容器注入配置好的选项,但参数类型不匹配导致容器无法提供正确服务,才触发了报错。
修正之后,重新执行迁移命令应该就能顺利生成初始迁移了。如果还有问题,可以检查下EF Core相关NuGet包的版本是否一致,以及appsettings.json的连接字符串是否能被项目正确读取。
内容的提问来源于stack exchange,提问作者canvee
相关产品推荐
相关产品推荐

