0

簡単な ASP.NET Web サイト アプリケーションがあります。新しい Entity Framework モデル ファースト アプローチを使用して、データベース (.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、ファイルにロックを設定してシングルユーザーモードとして使用すると、データベースを使用できる接続は1つだけになります。

VisualStudioとSQLServerの間でデータベースを使用するには、次のことを行う必要があります。1.データベース(ファイルではなく)をSQLServerに接続します。2。接続文字列を使用してSQLServerをポイントします。

于 2013-01-10T11:55:17.383 に答える
0

最大の答えは原則として正しいです。この接続文字列を使用して、彼の答えを実装しました

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="data source=SQLSERVERNAME;initial catalog=DATABASENAME;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient"

そもそも私の問題が発生した理由はこれであることに注意してください。VS2012 を使用してエンティティ データ モデル (edmx ファイル) を作成します。モデルを必要な場所に配置したら、モデルからデータベースを生成します。その時点で、Generate Database Wizard が表示されます。新しい接続。データ ソースを変更します。Microsoft SQL Server データベース ファイルを選択します (その時点では mdf ファイルしかなかったからです)。このようにすると、アプリケーションは LocalDB を使用することになり、Attachdbfilename は Max が言ったようにファイルをロックします。ただし、最初に SSMS を使用して mdf ファイルにアタッチし、必要に応じてデータベースの名前を変更する必要がありました。次に、VS2012 の [データ ソースの変更] で、代わりに [Microsoft SQL Server] を選択します。これで、VS2012 と SSMS の両方がデータベースにアクセスできるようになりました。

于 2013-01-16T22:47:22.593 に答える