EF5 Code First的SQL Server 2012连接字符串

Sof*_*hts 1 sql-server entity-framework

我在VS 2012中使用EF5创建了一个MVC4解决方案,现在我正在尝试将数据库创建为Code First.在控制器的Create方法中,我添加了db.Database.CreateIfNotExists(); 在我的机器上,我也运行了SQL Server 2012,我希望在那里创建数据库,而不是在某些SQL Express引擎或其他轻量级解决方案中.

我已经尝试了几种方法来建立正确的连接字符串,但都失败了,现在我不知道它应该如何看.这就是它现在的样子,但没有任何东西被创建,而我从中得到的CreateIfNotExists只是一个错误:

  • InnerException {"与SQL Server建立连接时发生与网络相关或特定于实例的错误.未找到服务器或无法访问服务器.验证实例名称是否正确以及SQL Server是否配置为允许远程连接. provider:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)"} System.Exception {System.Data.SqlClient.SqlException}

这是我的连接字符串的样子:

<add name="Tool.Models.Context" connectionString="Server=MSSQLSERVER;Initial Catalog=Tool.models.ToolDb.mdf;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

编辑:

在对这个问题进行了近一天的努力之后,我通过替换localhost来解决它MSSQLSERVER(如果我查看配置管理器,它仍然是实例的名称).谢谢你的评论.让我思考.

ste*_*ary 5

localhost是本地服务器,而不是实例,您似乎使用默认实例(称为mssqlserver),因此不需要指定实例名称,只需指定服务器名称,因此在连接字符串中使用localhost替换MSSQLSERVER的原因是什么.

您也可以在此处使用服务器的实际名称,例如SERVER-01(或您特定数据库服务器的实际名称),它将具有相同的效果.

但是,如果您在计算机上安装了命名实例,则必须同时指定服务器名称和实例,例如localhost\instancename或server-01\instancename

希望这有助于解释为什么放入localhost工作.