You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019报LocalDB错误50 EF CodeFirst连接字符串可用但读取数据失败

核心根因

.NET应用运行时仅会读取启动项目的配置文件:Web项目读取web.config,Windows服务/桌面项目读取app.config。类库项目下的app.config仅在Visual Studio执行Code First迁移、脚手架生成等设计时操作时生效,这就是生成数据库表正常、运行时读取数据失败的根本原因。

报错逻辑说明

  • 构造函数写base("name=Model5"):运行时会去启动项目的配置文件查找名为Model5的连接字符串,找不到就抛出No connection string named 'Model5' could be found错误
  • 构造函数写base("Model5"):EF会将传入的字符串识别为数据库名称,默认尝试连接LocalDB实例下的对应库,你本地没有对应LocalDB实例,就会抛出连接失败错误。

解决方案

方案1:复制连接字符串到启动项目配置(推荐)

将类库app.config中的完整<connectionStrings>节点内容,复制到启动项目配置文件的<configuration>根节点下,避免和现有同标签冲突即可。
DbContext构造函数保持带name的写法:

public partial class Model5 : DbContext
{
    public Model5()
        : base("name=Model5")
    {
    }
}

方案2:构造函数直接传入完整连接字符串

不需要依赖配置文件,直接把连接字符串写入构造函数参数即可:

public partial class Model5 : DbContext
{
    public Model5()
        : base(@"data source=.;initial catalog=TradingPlatform4;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework")
    {
    }
}

方案3:显式加载类库配置文件

如果需要统一使用类库的配置文件,可通过配置管理类显式加载类库的app.config读取连接字符串后传入DbContext构造函数,该方案复杂度较高,非特殊场景不推荐使用。


内容的提问来源于stack exchange,提问作者clozanne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:45:07