【发布时间】:2021-08-02 05:48:54
【问题描述】:
我正在构建一个 MVC 应用程序,使用 LinqPad6 进行测试。当应用程序尝试配置控制器时,我收到 DbContext 没有连接字符串的错误。这是一张图片:
这是我的 TimeCardsContext 代码的一部分:
公共部分类 TimeCardsContext : DbContext { 公共只读字符串_connectionString; 公共虚拟 DbSet TimeCards { 获取;放; } 公共虚拟 DbSet Workers { 获取;放; }
public TimeCardsContext(DbContextOptions<TimeCardsContext> options) : base(options)
{
IConfiguration config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
_connectionString = config.GetConnectionString("TimeConnect");
}
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
if(!options.IsConfigured)
{
options.UseSqlServer(_connectionString);
}
}
那么,丢失的连接字符串在哪里?我在上下文类中设置了一个断点,这样我就可以检查连接字符串,但调试器从来没有命中它。所以,我完全不知所措。
感谢任何想法。
谢谢
【问题讨论】:
-
不清楚你在这个 Linqpad 查询中到底在做什么。有几种方法可以在 Linqpad 中使用 EF 上下文。你是怎么做到的?
-
这个解决方案可能会帮助你stackoverflow.com/questions/38808604/…
-
Gert,我多年来一直使用 LinqPad 来测试 VS 应用程序中的数据函数。在查询窗口中,只需按 F4,您就可以选择包含项目的 dll。然后,您可以使用 LinqPad 来练习数据功能。我喜欢它,因为它提供了更好或更容易看到的错误消息。
-
Abi 包含的链接给了我足够不同的视角来找到解决方案。如果可以的话,我会把它标记为答案。
-
不过,这只是使用它的一种方式。而且我们看不到您如何在 Linqpad 查询中实例化和初始化上下文。