【问题标题】:DbContext won't accept named connection string for LocalDbDbContext 不接受 LocalDb 的命名连接字符串
【发布时间】:2016-11-18 21:17:47
【问题描述】:

我有这样的 app.config:

  <connectionStrings>
    <add name="MyDB" connectionString="Data Source=(localdb)\ProjectsV12;Initial Catalog=MrBoy;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False" />
  </connectionStrings>

在我的 DbContext 类中,如果我复制粘贴连接字符串,它可以正常工作,例如

: base("Data Source=(localdb)\ProjectsV12;Initial Catalog=MrBoy;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False")

但如果我指定

:base("name=MyDB")

我的应用程序和包管理器控制台出现错误:

"应用程序配置文件中的连接字符串'MyDB' 不包含必需的 providerName 属性。”

为什么不接受有效的连接字符串?除了手动将连接字符串传递给我的构造函数之外,还有其他解决方法吗?

【问题讨论】:

  • 你不应该只传入MyDB而不是name=MyDB吗?也许不是,但你的连接字符串中应该有providerName="System.Data.SqlClient"。

标签: c# entity-framework ef-code-first entity-framework-6


【解决方案1】:

这样做

         <add name="MyDB" connectionString="Data Source=(localdb)\ProjectsV12;Initial Catalog=MrBoy;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />

连接字符串需要提供者类型。将其设置为实体上下文!= 定义连接字符串。设置上下文时假定类型。

【讨论】:

    猜你喜欢
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多