【问题标题】:Value cannot be null error when attempting migration w/ .NET EF尝试使用 .NET EF 进行迁移时,值不能为空错误
【发布时间】:2022-01-28 02:34:01
【问题描述】:

我在尝试运行以下命令时遇到“值不能为空”错误 "dotnet ef 迁移添加 InitialCreate -p Persistence -s API/"

我不知道这是否重要,但我正在学习使用 .net 5.0 的课程并且我正在使用 .net 6.0;但我已经对项目进行了修改,因为它们已在课堂上被推荐以使其适用于 6.0。

我在这里附上了控制台输出的屏幕截图 -> 1

控制台输出的第一行似乎指向我的启动脚本

 public void ConfigureServices(IServiceCollection services)
    {

        services.AddControllers();
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebAPIv5", Version = "v1" });
        });
        services.AddDbContext<DataContext>(opt =>
        {
            opt.UseSqlite(_config.GetConnectionString("Default Collection")); <-- this line is referenced by the output.
        });
    }

我不太确定这样做,VSCode 不会针对此代码抛出任何错误或警告。

TIA

【问题讨论】:

  • 您确定您的appsetings.json 中存在名为Default Collection 的配置吗?
  • 它确实出现在appsettings.Development.json 但不在appsettings.json 我将添加它并再试一次
  • 更新:我将默认集合添加到 appsettings.json,但我仍然收到该错误 ` "ConnectionStrings": { "Default Connection": "Data source = reacitivites.db" }, ` 是代码在我的appsettings.json 文件中
  • 您引用的是“默认集合”而不是“默认连接”
  • @Eldar,这正是问题所在。我更改了 Collection is Connection 并且问题已解决!

标签: c# asp.net .net-core


【解决方案1】:

我无法评论,所以这里有一个答案。


您确定没有简单的拼写错误吗?

程序正在寻找名称为Default Collection(带有两个“l”)的连接字符串

您的更新评论指出您定义了Default Connection(带有两个“n”)。

我会首先验证它们是否完全匹配。

【讨论】:

  • 其他人在上面评论了这个,结果证明是问题所在,完全错过了那个错字。
猜你喜欢
  • 2021-12-29
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2013-07-09
  • 2018-06-10
  • 2019-01-12
相关资源
最近更新 更多