LocalDb和SQL Enterprise 2012能并排运行吗?

时间:2014-05-30 21:42:48

标签: c# sql sql-server visual-studio-2012 localdb

我刚刚安装了SQL Enterprise 2012,现在LocalDb似乎无法运行。我可以从命令行访问LocalDb并看到我引用的实例确实正在运行,但是当我运行启用Code First迁移的项目时,使用实例(localdb)\ v11.0,我得到一个错误,指出连接字符串可能不正确。我根本没有更改连接字符串,它是在Visual Studio 2012中创建新项目时默认设置的连接字符串。

有没有人有同样的问题?是否可以并排运行?

这是我得到的确切错误:

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

例外:

System.Data.ProviderIncompatibleException:从数据库获取提供程序信息时发生错误。这可能是由实体框架使用不正确的连接字符串引起的。检查内部异常以获取详细信息,并确保连接字符串正确。 ---> System.Data.ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串。 ---> System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。指定的LocalDB实例不存在。

1 个答案:

答案 0 :(得分:1)

我刚刚意识到问题是什么,希望这有助于其他人。

以下是导致错误的web.config部分:

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

参数v12.0值是个问题。在我安装SQL Server 2012后,这个生成的参数似乎从v11.0升级到v12.0,导致版本冲突。我猜测我本可以安装最新版本的SQL Server Express(2014)并且完全没有问题,因为版本号确实是v12.0。