【问题标题】:System.ArgumentNullException: Value cannot be null. (Parameter 'connectionString')System.ArgumentNullException:值不能为空。 (参数“连接字符串”)
【发布时间】:2022-05-15 01:58:25
【问题描述】:

我添加了 appsettings.json 以获取连接字符串,但我无法获取我的连接字符串。这是我的代码。

public class MovieTheaterDBContextFactory : IDesignTimeDbContextFactory<MovieTheaterDBContext>
{
    public MovieTheaterDBContext CreateDbContext(string []Args)
    {
        IConfigurationRoot configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .Build();

        var ConnectionString = configuration.GetConnectionString("MovieTheaterDBContext");
        //var ConnectionString = "Server=DESKTOPM4\\SQLEXPRESS;Database=MovieTheaterManagerment;Trusted_Connection=True;";
        var optionsBuilder = new DbContextOptionsBuilder<MovieTheaterDBContext>();
        optionsBuilder.UseSqlServer(ConnectionString);

        return new MovieTheaterDBContext(optionsBuilder.Options);
    }

   
}

appsettings.json:

{
  "ConnectionStrings":
  {
    "MovieTheaterDBContext": "Server=DESKTOPM4\\SQLEXPRESS;Database=EshopSolution;Trusted_Connection=True;"
  }
}

更新:这是我的错误,我没有将此项目设置为启动项目。所以它找不到appsettings.json。

【问题讨论】:

  • 看起来像这行 .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) 或变体:stackoverflow.com/a/60199695/495455
  • 嗨@Mistake,请分享你如何调用MovieTheaterDBContextFactory方法?

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


【解决方案1】:

右键单击 appsettings.json 文件并转到属性并将“复制到输出目录”选项更改为“始终复制”

【讨论】:

    【解决方案2】:

    检查您的 appSettings.json 文件是否位于所有项目文件所在的目录中。 .csproj 所在的位置。

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 2018-09-24
      • 1970-01-01
      • 2019-11-06
      • 2021-10-11
      • 2021-10-04
      • 1970-01-01
      • 2019-08-17
      • 2021-07-02
      相关资源
      最近更新 更多