0

私はエンティティフレームワークを通してデータベースを生成しました。ここでは、接続文字列は次のとおりです。Visual Studio(2010 Professional)はどこにMDFファイルをホストしますか?

<add name="AnnouncementsContainer" connectionString="metadata=res://*/Models.Announcements.csdl|res://*/Models.Announcements.ssdl|res://*/Models.Announcements.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\Database.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

これはDatabase.mdfと呼ばれるファイルを使用しています。アプリケーションは正常に動作しますが、私は今に対処するために抱えています二つの問題があります:私は手動で、これはSQL Serverで自分自身をファイルホストする必要があり、生のSQLコードを使用してデータベースを更新するたびに:

  • データベースのアップデートは、 Management Studio(私はデータベースを切り離し、残りをVisual Studioに任せる)。サーバーはVisual Studioサーバーエクスプローラーに表示されますが、Visual StudioはSQLコードを実行するためにサーバーに接続できません。 Visual Studioはこのファイルをホストしているため、アプリケーションはデータベースにアクセスできますが、IDEはアクセスできません。
  • プロファイリング:私はエンティティフレームワーク用のストアドプロシージャをいくつか作成し、それらをエンティティにマップしました。これらのエンティティが実際に実行されているかどうかを確認することは本当にうれしいでしょう。 SQLプロファイラのようなツールで実行されるストアドプロシージャを確認するにはどうすればよいですか?

    SQL Server Management Studioを:

    SQL Server Management Studio

    Visual Studioのサーバーエクスプローラ:ここ

は、私が言っていることは明らかでない場合には、いくつかのスクリーンショットです

Visual Studio Server Explorer

答えて

1

あなたの接続文字列cont AINSこの部分:。

data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\Database.mdf; 

これは、それはあなたの|DataDirectory|(これはWebプロジェクトでのApp_Dataフォルダにデフォルト)に保存されたファイルDatabase.mdfがかかりますし、それはこの場合には(提供SQLEXPRESSインスタンスにdinamicallyそれを添付することを意味します\ sqlexpressはローカルホスト.\で実行されているsqlexpressインスタンスがsqlexpressということを意味します。

+0

私もそれを見ました。では、なぜSQL Server Management Studioでそれを見ることができないのですか、それともVisual Studioでコードを実行できませんか? – KPthunder

+0

実行時に動的に添付されるため、Management Studioには表示されません。ビジュアルスタジオの場合、サーバーエクスプローラーを使用してMDFファイルを照会することができます。 –

関連する問題