2016-07-15 40 views
0

我已經App.config中這樣的連接字符串:的DbContext不會接受命名的LocalDB

<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屬性。「

爲什麼有效的連接字符串不被接受?除了手動將連接字符串傳遞給我的構造函數之外,是否有解決方法?

+0

難道你不應該只傳入'MyDB'而不是'name = MyDB'?也許不是,但是你的連接字符串中應該有'providerName =「System.Data.SqlClient」'。 – DavidG

回答

2

做這個

  <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" /> 

的ConnectionStrings要求供應商類型。將其設置爲實體上下文!=定義連接字符串。在設置上下文時會假定類型。