Entity framework core DbContext没有连接字符串

Entity framework core DbContext没有连接字符串,entity-framework-core,Entity Framework Core,我正在构建一个MVC应用程序,使用LinqPad6进行测试。当应用程序尝试配置控制器时,我得到一个错误,DbContext没有连接字符串。这是一张图片: 这是我的部分时间卡上下文代码: 公共部分类TimeCardsContext:DbContext { 公共只读字符串_connectionString; 公共虚拟数据库集时间卡{get;set;} 公共虚拟数据库集工作程序{get;set;} public TimeCardsContext(DbContextOptions<Tim

我正在构建一个MVC应用程序,使用LinqPad6进行测试。当应用程序尝试配置控制器时,我得到一个错误,DbContext没有连接字符串。这是一张图片:

这是我的部分时间卡上下文代码:

公共部分类TimeCardsContext:DbContext { 公共只读字符串_connectionString; 公共虚拟数据库集时间卡{get;set;} 公共虚拟数据库集工作程序{get;set;}

    public TimeCardsContext(DbContextOptions<TimeCardsContext> options) : base(options)
    {
        IConfiguration config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
        _connectionString = config.GetConnectionString("TimeConnect");
    }
那么,丢失的连接字符串在哪里?我在上下文类中设置了一个断点,以便检查连接字符串,但调试器从未命中它。因此,我完全不知所措

任何想法都很感激


感谢您通过DbContext构造函数传递外部选项。在配置覆盖的
中,您专门检查选项是否已配置

连接字符串为null的原因是它可能被传递

从上的MSDN文档

获取一个值,该值指示是否已配置任何选项。当覆盖OnConfigurang(DbContextOptions Builder)时,此值非常有用要配置上下文,但在某些情况下,您还可以通过上下文构造函数从外部提供选项。此属性可用于确定选项是否已设置,并跳过OnConfigurang(DbContextOptionsBuilder)中的部分或全部逻辑


可以通过构造函数选项传递连接字符串,也可以删除IsConfigured检查。

不清楚您在这个Linqpad查询中到底在做什么。在Linqpad中使用EF上下文有几种方法。您是如何做到的?这个解决方案可能会帮到您Gert的,我多年来一直使用Linqpad在VS applic中测试数据函数在查询窗口中,只需按F4,您就可以选择包含项目的dll。然后,您可以使用LinqPad来执行数据函数。我喜欢它,因为它提供了更好或更容易看到的错误消息。包含的链接Abi为我提供了足够多的不同视角来找到解决方案。如果可以,我会将其标记为答案。仍然l、 这只是使用它的一种方法。我们看不到如何在Linqpad查询中实例化和初始化上下文。该链接提供了有关IsConfigured测试的信息,但删除IsConfigured测试修复了该特定问题。
protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            if(!options.IsConfigured)
            {
                options.UseSqlServer(_connectionString);
            }
        }