4

MVC 4 プロジェクトを作成し、デザイナーを使用して単一のデータ エンティティを追加することにより、VS 2012 で単純な Entity Framework モデル ファースト アプリを作成しました。

初めてデザイナー サーフェイスを右クリックして [データベースの生成] を選択すると、データベース接続の詳細を入力するように求められます。App_data フォルダー内のローカル データベース ファイルを使用するように指示します。完了すると、(空の) データベース ファイルが作成され、光沢のある新しい MyData.edmx.sql ファイルが表示されます。

さて、新しいデータベース ファイルに対してこの sql ファイルを実行する必要があると仮定します。しかし、私はそうする魔法を理解できません。SQL ファイルを右クリックして [実行] を選択すると、使用しているサーバーの種類がデータベース エンジンであることが示され、サーバー名を尋ねられます。利用可能な唯一のオプションは、MyPC\SQLEXPRESS のようです。しかし、それを選択して[接続]ボタンをクリックすると、[MyData]データベースが存在しないと不平を言います(データベースファイルでLocalDbではなくSQL Expressを使用するように指示したため)。

ヘルプ。VS を新しいデータベース ファイルに接続するにはどうすればよいですか?

ボブ

4

2 に答える 2

5

VS 2013、EF6 で edmx.sql を実行しようとすると、同様の問題が発生しました。このソリューションについてはどこにも言及されていないため、「データベース mynewdatabase が存在しません」というエラーが発生する可能性がある他のユーザーのために、ここに追加します。以下は私の解決策です:

  1. 手順に従って、モデルからデータベースを生成します。
  2. ファイル *.edmx.sql を開きます (自動的に開くはずです)。テキスト エディター内の任意の場所を右クリックし、[実行] を選択します。
  3. このデータベースに初めて接続する場合は、ログイン プロンプトが表示されます。LocalDB を使用している場合は、server を「(localdb)\v11.0」と正確に入力し、Windows 認証を使用します。

今問題。「データベース mynewdatabase が存在しません」というエラーが表示された場合の修正方法は次のとおりです。 *.edmx.sql の上部近くに、次のような行があります。

USE [mynewdatabase];

これを変更して、データベース ファイル名のフル パスを含める必要があります。たとえば、次のようにします。

USE [D:\Projects\MyNewProject\MyNewProject\App_Data\mynewdatabase.mdf];

手順 2 を繰り返すと、データベースが正常に作成されたというメッセージが表示されます。

注 1: .mdf 拡張子が必要です!

注 2: プロセスが edmx.sql を上書きするため、モデルからデータベースを生成するたびに、この手動編集を再度実行する必要があります。

于 2014-11-11T02:07:53.347 に答える
0

MSDN フォーラム[こちら]で、Allen Li (マイクロソフト テクニカル サポート) から私の質問に対する適切な回答を得ました。Visual Studio は、データベース ファイルに対して SQL スクリプトを直接実行できないようです。SQL Server Management Studio をダウンロードしてインストールし、それを使用してファイルを既存の SQLEXPRESS インスタンスに「添付」する必要があります。

Allen は、プロセスを詳細に説明しているブログ エントリを教えてくれました。

http://www.headcrash.us/blog/2010/11/model-first-entity-framework-with-mdf-database-files-in-app_data/

于 2012-09-18T14:57:12.710 に答える