0

我有一个简单的 ASP.NET 网站应用程序。使用新的实体框架模型优先方法,我创建了一个数据库(.mdf文件)。但是,无论何时运行应用程序,SSMS 都无法连接到数据库(错误 5123 或 5120),反之亦然。

这是正常的吗?有没有办法解决这个问题?

我试图以管理员身份运行 SSMS,但这似乎没有帮助。

我正在使用 VS 2012 Professional 和 SQL Server 2012 Express。

这是应用程序的连接字符串。

<connectionStrings>
   <add name="MarketingContainer" 
        connectionString="metadata=res://*/App_Code.Marketing.csdl|res://*/App_Code.Marketing.ssdl|res://*/App_Code.Marketing.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL2012ADV\MSSQL\DATA\MarketingDB.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
        providerName="System.Data.EntityClient"/>
  </connectionStrings>
4

2 回答 2

2

当您使用时,AttachDbFileName您将锁定文件并用作单用户模式,并且只有一个连接可以使用数据库。

要在 Visual Studio 和 SQL Server 之间使用数据库,您必须: 1. 将数据库(不是文件)附加到 SQL Server 2. 使用连接字符串指向 SQL Server

于 2013-01-10T11:55:17.383 回答
0

最大答案原则上是正确的。我现在已经实现了他的答案,使用这个连接字符串

添加名称="MarketingContainer" connectionString="metadata=res://*/App_Code.Marketing.csdl|res://*/App_Code.Marketing.ssdl|res://*/App_Code.Marketing.msl;provider=System .Data.SqlClient;provider 连接字符串="数据源=SQLSERVERNAME;初始目录=DATABASENAME;集成安全=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient"

我应该注意到,我的问题首先出现的原因就是这个。我使用 VS2012 创建实体数据模型(edmx 文件)。将模型放到我想要的位置后,我从模型生成数据库。此时,生成数据库向导出现。新连接。更改数据源。我选择 Microsoft SQL Server 数据库文件(因为那时我只有一个 mdf 文件)。如果你这样做,你最终会得到使用 LocalDB 的应用程序,并且 Attachdbfilename 会像 Max 所说的那样锁定文件。但是,我应该做的是首先使用 SSMS 附加到 mdf 文件,然后根据需要重命名数据库。然后在 VS2012 中,更改数据源,选择 Microsoft SQL Server。现在,VS2012 和 SSMS 都可以访问数据库了。

于 2013-01-16T22:47:22.593 回答