我遇到的問題是當我運行程序時,我得到一個“System.NullReferenceException”異常。不確定是什麼問題。此問題也不允許我使用dnx啟動數據遷移。

在此處輸入圖像描述

在此處輸入圖像描述

#config.json

 {
  "Data": {
  "DefaultConnection": {
  "Connectionstring": "Data Server=.\\ERKANDEMIR5E91;Initial Catalog=RegistrationDB;Integrated Security=True;"
      }
   }
}

scoolDbContext.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Data.Entity;
using Microsoft.Data.Entity.Metadata;
using School.Models;

namespace School.Context
{
    public class SchoolDbContext : DbContext
    {
       public DbSet<Course> Courses {get; set;}
    }
} 

Statup.cs

namespace School
{
public class Startup
{
    public static Microsoft.Extensions.Configuration.IConfiguration Configuration { get; set; }

    public Startup (IHostingEnvironment env)
    {
        //setup configuration sources
        Configuration = new ConfigurationBuilder()
       .AddJsonFile("config.json")
       .AddEnvironmentVariables()
       .Build();

    }
    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
        //add services to container
        services.AddEntityFramework().AddSqlServer().AddDbContext<SchoolDbContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
        services.AddMvc();

        //resolve dependency injections
        services.AddScoped<IRegistrationRepo, RegistrationRepo>();
        services.AddScoped<SchoolDbContext, SchoolDbContext>();           
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
        app.UseIISPlatformHandler();
        app.UseMvc();
        app.UseWelcomePage();

    }

    // Entry point for the application.
    public static void Main(string[] args) => WebApplication.Run<Startup>(args);
   }
 }

在此處輸入圖像描述

一般承認的答案

你應該修復代碼

public Startup (IHostingEnvironment env)
{
    //setup configuration sources
    Configuration = new Configuration()
        .AddJsonFile("config.json")
        .AddEnvironmentVariables();
}

public Startup (IHostingEnvironment env)
{
    //setup configuration sources
    Configuration = new ConfigurationBuilder()
        .AddJsonFile("config.json")
        .AddEnvironmentVariables()
        .Build();
}

或者

public Startup (IHostingEnvironment env)
{
    //setup configuration sources
    Configuration = new ConfigurationBuilder()
        .AddJsonFile("config.json")
        .AddJsonFile($"config.{env.EnvironmentName}.json", true)
        .AddEnvironmentVariables()
        .Build();
}


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因