实体框架使用不正确的连接字符串

时间:2016-07-22 04:33:10

标签: sql-server entity-framework ef-code-first web-config connection-string

我尝试使用EF连接到我的数据库(最近移动到另一台服务器)。

服务器名称是:SERVER-PC

MSSQL版本:Microsoft SQL Server 2014 - 12.0.2000.8

使用xp_regread获取实例名称sp:MSSQL12.MSSQLSERVER

我想在连接字符串中同时添加实例名称和服务器名称。 这是我从this link

获得帮助的连接字符串
<add name="DefaultConnection" connectionString="data source= SERVER-PC\MSSQL12.MSSQLSERVER; Initial Catalog=FoodDB;Integrated Security=True" providerName="System.Data.SqlClient" />

但是当我运行项目时,会发生以下错误:

  

错误:{&#34;提供商未返回ProviderManifestToken   。字符串&#34;}

     

从中获取提供者信息时发生错误   数据库。这可能是由实体框架使用不正确引起的   连接字符串。检查内部异常以获取详细信息并确保   连接字符串是正确的。

有人可以帮我一个忙吗?

注意:我想在连接字符串中同时使用服务器名称和实例名称(有意)。 (假设实例不是默认值)

1 个答案:

答案 0 :(得分:0)

EF无法确定SQL Server商店版本:

-- Get Server name
SELECT @@servername

-- Get service name
SELECT @@servicename

MSSQL12.MSSQLSERVER =实例ID而非名称!

<add name="DefaultConnection" connectionString="data source= .\; Initial Catalog=FoodDB;Integrated Security=True" providerName="System.Data.SqlClient" />

<add name="DefaultConnection" connectionString="data source= SERVER-PC\; Initial Catalog=FoodDB;Integrated Security=True" providerName="System.Data.SqlClient" />

注意:要连接到默认实例,您不必指定实例名称,只指定服务器名称。  MSSQLSERVER =默认名称