ASP.NET MVC 6 连接字符串 config.json

ASP.NET MVC 6 Connection Sting config.json

我遇到的问题是当我 运行 程序时出现 "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();
}