2012-03-19 8 views
3

最初にコードを使用してWebサイトを作成すると、私自身の心のために、まずデータベースを使用してVS2010内のSQLサーバーdbを作成するときに作成できるdbを探索できます。Entity Framework 4コードファースト:データベースはどこにありますか?

私は周りを見ているだけで、私が見つけることができる唯一の関連情報は、最初にコードを持つ既存のデータベースを使用しているようです、私はコードを最初に作成したいだけで、 、または私はそれを見ることができるように、それのデフォルトの場所を変更する方法。

私はconfigファイルの接続文字列を使っていましたが、実際に何をしているのかわからないので、haventはそこで成功しました。 Custon接続文字列でうまくいきましたが、dbファイルがどこにあるのかまだ分かりません!

+0

こんにちはベンApp_Dataにして、あなたの接続文字列に貼り付けを考慮することができる

または第二のケースは、私たちは、あなたがそれに基づいて伝えることができます。また、エンティティフレームワークコードファーストでは、構成が存在しない場合には条約を使用していることに注意してください。接続文字列の明示的な指示の代わりに、データベースの作成場所と呼び出し先の既定のスキームがあります。また、私はatbyrdの答えに示されているように、SQL Server Management Studioを使用してデータベースを "見回す"方法を知っていると仮定しています。 – kingdango

答えて

0

Scott Gu wrote a good articleが最初です。接続文字列について直接パーツに移動したい場合は接続を検索し、次に生成プロセスを説明します。

0

あなたは、SQL ServerまたはSQLサーバーを使用している場合、あなたは、コンパクトなバージョンを使用している場合は、ソリューション内のApp_Dataに下のファイルがあるはずです Sql Server Management Studio

が必要になります表します。 Web.configファイルを調べることでこれを判断できるはずです。

0

YourContextのようなPOCOクラスを作成すると仮定します。DbContext 1. name = YourContextの接続文字列を定義した場合、特定のデータベースに接続します。 2.データベースは、ローカルのSQLEXPRESSインスタンス上に、名前がYOUR_NAMESPACE.YourContextで作成されます。

7

EFコードファーストには、データベースの作成場所と方法を定義する複数の方法があります。実際には、(具体的な構成やコードの代わりに)Conventionsという数字があります。

接続文字列コンベンション

:ここでは、そのページからの抜粋だ

:私は(下の私の接続文字列の例を参照)、特定のことを好むが、あなたは規則を使用している場合には、以下のようにMicrosoftによって定義され、

Entity Frameworkのは、デルの完全修飾型名後 名前のデータベースをローカルホストの\ SQLEXPRESSインスタンスまたはLocalDBサーバー上 データベースを作成するデフォルトの規約を使用し、コンテキスト(たとえば、CodeFirstModel.SchoolEntities)。

Visual Studio 11には、 SQLEXPRESSではなくLocalDbデータベースサーバーが含まれています。インストール中、EntityFramework NuGetパッケージ は、使用可能なデータベースサーバーを確認します。 NuGetパッケージは、慣習的に接続を作成するときにCode Firstが使用するデフォルトのデータベースサーバー を設定することによって、構成ファイルを更新します( )。 SQLEXPRESSが実行されている場合は、それが使用されます。 SQLEXPRESSが利用できない場合、 LocalDbがデフォルトとして登録されます。既定の接続ファクトリ の設定が既に含まれている場合は、構成ファイルに が変更されていません。接続文字列が コードに設定されている場合、コードに設定されているインスタンスは、設定ファイルにある よりも優先されます。

モデルが変更されていない限り、アプリケーションを後で実行すると、既存のデータベースが使用されます。モデルが変更され、 イニシャライザを設定しない場合、例外が発生します。「データベースが であるため、ContextNameコンテキストをサポートするモデル が変更されました。データベースを更新するには、コードファーストの移行を使用することを検討してください。」データベース名のコードファースト規約をオーバーライドする

一つの方法は、同じ名前の接続 文字列が含まれているのApp.configファイルまたはWeb.configファイルを追加すること ですあなたのコンテキストタイプとして。 .configファイル は、実行可能アセンブリを含むプロジェクトに追加する必要があります。

注:コードファーストで作業する場合、接続文字列は通常のデータベース接続文字列 である必要があります。エンティティ Framework Designerを使用する場合、接続文字列は EntityConnection文字列である必要があります。以下は

私のEFコードファーストの接続文字列の1つの例である:

<add name="NameOfYourDbContextClass" connectionString="Data Source=YOUR-DB-SERVER;Initial Catalog=THE-DB-NAME-YOU-WANT;Persist Security Info=True;Trusted_Connection=true;" providerName="System.Data.SqlClient" /> 

ワン...念頭に置いて接続文字列(および一般的な構成)を保つために最後のものは、アプリケーションによって定義されていますコンテキスト。言い換えると、データアクセスクラス(DbContextに基づく)を別のプロジェクトに持っている場合、接続文字列はweb.config(Webプロジェクト内)で定義する必要があります。

幸運なベン!

7
C:\Users\YourCurrentUserName 

私は上記のディレクトリにあります。
Contextクラス名でWindows検索を実行します。

0

これは、接続文字列とサーバー名..

Console.WriteLine(ac.Database.Connection.ConnectionString); 

SQL Serverの管理スタジオでの使用このサーバー名を与えると提起し、サーバーに貼り付けると接続する@kingDangoハイテク.. データベースを見つけることができます。 。それは

関連する問題