2013-05-23 9 views
9

私はちょうど新しいアプリケーションを作成し、EntityFramework 5をNuGet経由で追加し、非常に基本的なDbContextを作成し、それにデータを保存しました。私のデータベースはどこにありますか?どのように表示しますか?

私のデータは正確にどこにあり、どのように表示するのですか?それは追加そのままApp.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 

そして、私は私の接続文字列は

Data Source=(localdb)\\v11.0;Initial Catalog=ImageSignature.ImageContext;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFrameworkMUE 

あるしかし、それがすべて私にjibberishのように見えることがわかりますdbオブジェクトを検査することです。私はMySQLの背景から来た。

私のデータベースは正確にどこにあり、どのように表示できますか?私はVS2012の「サーバエクスプローラ」に関連するものは何も表示されません。

答えて

8

This記事は、あなたの質問に答える必要があります。

構成セクションでは、デフォルトの接続コードまず コンテキストで使用するデータベースを検索するために使用すべき 工場を指定することができます。既定の接続ファクトリは、 コンテキストの構成ファイルに接続文字列が追加されていない場合にのみ使用されます。デフォルトの接続ファクトリ がSQL ExpressまたはLocalDb、いずれかのポイントは、あなたがインストールされている1に に依存することを登録されたEF NuGetパッケージをインストールし

あなたの設定で判断すると、LocalDbへの接続、which is a minimalist version of SQL used for developmentが使用されているようです。

あなたが書いたように、それは「箱から出して、」見えないかもしれません、組み込みのサーバーエクスプローラのVisual Studioでそのデータベースにアクセスするために使用しようとすることができますが。そのため、コンテンツを表示するには、サーバーエクスプローラで新しい接続を作成する必要があります。

EDIT:

私は実際には「ドライブ上のデータベースである」質問に答えるためにVS2012でのVMwareのWindows 8を起動しなければなりませんでした。サーバーブラウザを経由して、それに接続するために、私は、サーバーのアドレスとして(LocalDb)\v11.0を入力して、選択することで、データベースを閲覧することができたとして

LocalDbC:\Users\<USER NAME>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0

Screenshot from my VM

mdfldfファイルを作成します(名前空間を持つ)アプリケーションのデータコンテキスト名のような名前のデータベース。

これらの情報はすべてhereです。

hereというコードで、Database.SetInitializer(new DropCreateDatabaseAlways<ImageContext>());を使用してアプリケーションの開始時にデータベースを再構築しているようです。もちろん、これはアプリを初めて実行するとき(つまりデータベースが実際に作成されるとき)には有効ですが、その後の再実行ではデータがクリアされ、新鮮なスレートで開始されます。サーバーエクスプローラを使用してデータベースに接続した後、実際にはこのコードを実行することができませんでした。サーバブラウザで接続を開いたままにしておくことを再検討するか、そのコード行を変更する必要があります。

+0

なぜ「外から見えない」のですか?それはどこにある?それは*私のコンピュータ上のファイルに保存されていますか?おそらくtempフォルダにスローされたのでしょうか? Darinが示唆するように私の接続文字列に 'AttachDBFilename'を追加しようとしますが、実際に何をしているのか知りたいです。 – mpen

+0

開発用にWindows 7と本格的なSQLサーバーを使用しているので、LocalDdはW8にVS2012と一緒にインストールされているようですが、実際にチェックするのに問題があります。非常に基本的なDbContext *をどのように作成したか分かち合いましょうか? – Shaamaan

+0

[this gist](https://gist.github.com/mnbayazit/89409c1fb880f3704396)に関連するものをアップロードしました。 2つのフィールドを持つクラスです。 – mpen

3

LocalDbを使用しています。内容はファイルに保存することができます。あなたは、接続文字列を使用して場所を指定することができます。

<connectionStrings> 
    <add name="ImageContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=database;Integrated Security=SSPI;AttachDBFilename=c:\work\database.mdf" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

接続文字列のnameは、あなたのDbContextファイルの名前と一致する必要があります。

Visual Studioでサーバーエクスプローラを使用して、このdbファイルを開いてその内容を調べることができます。

+1

LocalDBはサービスベースのデータベースであり、SQL Server Compactとは関係ありません – ErikEJ

+0

ありがとうございます。これを追加しようとしました。サーバーエクスプローラーで「Microsoft SQL Serverデータベースファイル」を選択して接続できたDBファイルを作成しました。私は今、テーブルを見ることができますが、その内容を見ることはできません。 – mpen

+0

おそらくデータベースが空であるためですか? – Shaamaan

関連する問題