2017年5月15日 星期一

EF6 Exception : 指定的 LocalDB 執行個體不存在

情境:
使用EF Code First,未設定web.config的connectionStrings給DbContext使用,打算使用預設行為建立,執行application欲建立 db 時發生錯誤:

建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: SQL Network Interfaces, error: 50 - Local Database Runtime 發生錯誤。 指定的 LocalDB 執行個體不存在。
)


在cmd輸入 sqllocaldb i 查看我有那些 LocalDB 執行個體 :
MSSQLLocalDB
ProjectsV13

以前得知的知識,預設執行個體是 v11.0
所以以為 [指定的 LocalDB 執行個體] 指的是 v11.0
發現我沒有 v11.0 所以打算建立一個,在cmd輸入 sqllocaldb c v11.0
但是發生錯誤:
因為發生下列錯誤,建立 LocalDB 執行個體 "v11.0" 失敗:
無法在這台電腦上使用者定的 LocalDB版本。

上網查到了這一篇文章:
http://rowo.co/blog/2014/08/28/exception-with-new-ef6-project/
於是檢查自己的web.config

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v13.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>

發現預設使用的是 v13.0
因為沒有這個執行個體所以建立了一個 sqllocaldb c "v13.0"
再次執行application,成功!









沒有留言: