从SSMS 2014

时间:2015-07-24 18:05:01

标签: asp.net sql-server visual-studio localdb

我对如何从SQL Server 2014 Management Studio连接到LocalDb感到困惑。 (我也在localhost上安装了SQL标准版。)

我的ASP.NET应用程序中有这样的连接:

<add name="DefaultConnection" 
     connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\BillTest.mdf;Initial Catalog=BillTest;Integrated Security=True" 
     providerName="System.Data.SqlClient" />

当我进入SSMS 2014并连接到(LocalDb)\v11.0时,我可以连接,我看到像aspnet-BillTest-2015mmddhhmmss这样的数据库,但我无法打开它。我收到一个错误,例如“数据库......无法访问。”

当我连接到(LocalDb)\mssqllocaldb时,我可以连接,我看到像BillContext这样的数据库,并且有我的表格。我确认这是应用程序连接到的那个,通过插入新行并看到它们显示在我的应用程序中。

您能否解释连接字符串中的差异:

  • 当Web.config中的连接字符串为(LocalDb)\mssqllocaldb时,我的ASP.NET应用程序如何使用(LocalDb)\v11.0\v11.0上的实际内容是什么?
  • 为什么(LocalDb)\mssqllocaldb指向既不是11.0也不是我的SQL Server 2014安装的SQL版本(12.0.2000)(localhost = 12.0.4100.1)?
  • 为什么数据库名称为“BillContext”而不是“BillTest”?

2 个答案:

答案 0 :(得分:1)

由于LocalDB服务器版本和SSMS版本。直到Visual Studio 2013,您应该使用特定于版本的连接字符串(例如,从Visual Studio 2015开始的(LocalDb \ v11.0),您应该使用版本无关的连接字符串(LocalDB \ MSSQLDB)才能正常工作。请检查此链接供参考。

Version independent local DB in Visual Studio 2015 - Bill Wagner

答案 1 :(得分:0)

  1.   

    为什么(LocalDb)\ v11.0可以在我的ASP.NET应用程序中运行,但不能在SSMS中运行?

    听起来(LocalDb)\v11.0可以从您描述的内容中访问,只是数据库本身无法访问。我检查文件是否仍然存在或是否有其他东西锁定了文件。

  2.   

    为什么(LocalDb)\ mssqllocaldb指向既不是11.0也不是我的SQL Server 2014安装版本(12.0.2000)(localhost = 12.0.4100.1)?

    程序集版本和文件版本不同。请参阅this answer

  3.   

    为什么数据库名称&#34; BillContext&#34;而不是&#34; BillTest&#34;?

    您可能没有为EF上下文提供连接名称(例如new BillContext("DefaultConnection")),因此它会回退到默认值,这是一个以您的上下文命名的LocalDb数据库。