代码之家  ›  专栏  ›  技术社区  ›  Yanayaya

为什么我的ASP中出现错误。NET Core SQL Server Express连接字符串?

  •  2
  • Yanayaya  · 技术社区  · 7 年前

    我最近启动了一个新的ASP。NET核心web应用程序,我想将其连接到本地SQLExpress数据库。我一直在关注文档,但当它尝试在以下位置读取我的连接字符串时,我得到了一个错误“Value cannot be null”

    options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")

    这是到目前为止我的代码。在里面 Startup.cs 我有以下设置:

    using Microsoft.AspNetCore.Builder;
    using Microsoft.EntityFrameworkCore;
    using Microsoft.Extensions.DependencyInjection;
    using Blondie.CoreApiSql.Models;
    using Microsoft.Extensions.Configuration;
    
    namespace Blondie.CoreApiSql
    {
        public class Startup
        {
            private readonly IConfiguration configuration;
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddDbContext<DatabaseContext>
                    (options => options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));
                services.AddMvc();
            }
            public void Configure(IApplicationBuilder app)
            {
                app.UseMvc();
            }
        }
    }
    

    运行应用程序时,将在以下行触发错误:

    services.AddDbContext<DatabaseContext> (options => options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));

    我已在中定义了连接字符串 appsettings.json 如以下文件所述:

    {
        "ConnectionStrings": {
            "DefaultConnection": "Data Source=DESKTOP-PC009\\SQLEXPRESS;Database=Senua;Trusted_Connection=True;MultipleActiveResultSets=true"
        },
        "Logging": {
          "IncludeScopes": false,
          "Debug": {
            "LogLevel": {
              "Default": "Warning"
            }
          },
          "Console": {
            "LogLevel": {
              "Default": "Warning"
            }
          }
        }
      }
    

    我已经创建了 Senua 数据库中有一个没有数据的表。我的数据库使用windows身份验证。

    我已经用下面的方式用我的单个表定义了我的数据库上下文。

    public class DatabaseContext : DbContext
    {
        public DatabaseContext(DbContextOptions<DatabaseContext> options) 
            : base(options)
        {
        }
        public DbSet<Hellheim> Hellheim { get; set; }
    }
    

    我的理解是,只有当您未能在 appsettings。json 但我已经添加了它,以前有人有过这个问题吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   John Nyingi    7 年前

    定义并为其配置分配值 IConfiguration 并需要一个值。 在构造函数中定义依赖项注入

    public Startup(IConfiguration configuration)
        {
            this.configuration = configuration;
        }